[JavaScript] Formulardaten schicken...

Dieses Thema im Forum "Webentwicklung" wurde erstellt von stinkZwiebel, 14. September 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. September 2006
    Formulardaten schicken...

    Also is kompliziert, ich hab mich mal mit dieser AJAX-Technologie beschäftigt, und gut, ich habs schon geschafft, dass ich einfache Inhalte damit anzeigen kann, aber ich hab keine ahnung wie ich jetz nich nur ne datei aufruf, sondern gleich 2 Input felder per POST ans ziel hin schick...
    ich hoffe dass ich nicht total unverständlich geschrieben hab..
    für antworten gibts nen gründen
     
  2. 14. September 2006
    AW: Formulardaten schicken...

    hmmm hab mich zwar nur oberflächlich damit beschäftigt aber ich könnte mir gut vorstellen dass man mit hilfe von php über die url input felder verschicken kann

    denke du wirst von php ahnung haben wenn du dich schon mit ajax beschäftigst

    also ich würde dann mir die xml datei mit per php erstellen lassen immer (dynamisch halt) und dann noch halt deine 2 inputfelder immer per url übergeben damit würde es theoretishc reichen sich eine datei einfach anzeigen zu lassen und die verarbeitung per php vorzunehmen

    wenn du noch fragen hast frag einfach
     
  3. 14. September 2006
    AW: Formulardaten schicken...

    also bin n schritt weiter gekommen...
    @xplict: das wäre dann ne GET-Übertragung ich will und brauch ne post übertragung
    ich muss das mit http_request.send(); senden, bloß hab ich herzlich wenig ahnung/suchergebnisse bei google wie das jetz genau geht.

    @xplict, hab dir nen grünen gegebn
     
  4. 14. September 2006
    AW: Formulardaten schicken...

    hmmm hab mal gegoogled und sofort was gefunden:

    Einführung - AJAX | MDN

    so wie ich das verstehe kannse bei http_request.send(); infos so wie bei der GET-Übertragung angeben solltest dann aber vorher bei http_request.open POST angeben

    ausserdem soll man noch den MIME typ deklarieren mit

    http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');


    ka obs dir hilft aber finde dass es recht verständlich zu sein scheint
     
  5. 14. September 2006
    AW: Formulardaten schicken...

    hab vor ewigkeiten mal n gästebuch auf ajax-basis gebastelt (sollte eigentlich n forum werden). hier mal n bisschen code, der dir weiterhelfen sollte:
    PHP:
    <html>
       <head>
          <title>
             ajax posts
          </title>

    <?php

       mysql_connect
    ( "localhost" "root" "" );
       
    $link  mysql_select_db ( "moep" );
       if(!
    $link ) { die( "Fehler: " mysql_error ()); }
       
    ?>
       <style>
          body {
             font-family: Verdana;
          }
          table {
             font-size: 10px;
             background-color: #eeeeee;
          }
          input {
             border: 1px solid black;
             padding: 0px;
             font-family: Verdana;
             font-size: 10px;
             background: #ffffff;
          }
          textarea {
             border: 1px solid black;
             padding: 0px;
             margin-top: 2px;
             font-family: Verdana;
             font-size: 10px;
          }         
       </style>
       
       <script language="JavaScript">
       
       function doSearch () {
          if (window.XMLHttpRequest) { // Mozilla, Safari, Opera, ...
             http_request = new XMLHttpRequest();
          } else if (window.ActiveXObject) { // IE
             http_request = new ActiveXObject("Microsoft.XMLHTTP");
          }
          
          http_request.open('POST', 'add_reply.php', true);
          http_request.onreadystatechange = handleRequest;
          http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
          post_user = document.getElementById('post_user').value;
          post_message = document.getElementById('post_message').value;
          http_request.send('post_user=' + post_user + '&post_message=' + post_message + '&timestamp=' + timestamp);
       }

       function setTimestamp() {   
          jetzt = new Date();
          timestamp = jetzt.getTime()/1000;
       }
       
       function handleRequest() {
          if(http_request.readyState == 4 && http_request.status == 200) {
             new_replies = document.getElementById('new_replies');
             new_replies.innerHTML = http_request.responseText;
             document.getElementById('add_reply').style.display = 'none';
          }
       }
       
       function jo_mach_ma() {
             doSearch();
             handleRequest();
       }   
       
       function add_reply() {
          document.getElementById('add_reply').innerHTML="<input type='text' id='post_user' name='post_user' size='20'><br /><textarea name='post_message' id='post_message' cols='60' rows='4'></textarea><br /><input type='button' onClick='jo_mach_ma();' value='send'>&nbsp;<input type='reset' value='clear'>";
       }
       
       </script>
      
    </head>

    <body onLoad="setTimestamp()";>

       <table style="width: 500px;" border="1" cellpadding="2" cellspacing="0">
          <tr style="font-weight: bold; font-size: 12px;">
             <td width="150">
                #
             </td>
             <td width="350">
                text
             </td>
          </tr>
    <?php

       $sql 
    "SELECT * FROM fajax_posts ORDER BY dtmCreated ASC" ;
       
    $result  mysql_query ( $sql );
       
       
    $color  "#dddddd" ;   
       if(
    $result ) {
          while(
    $row  mysql_fetch_array ( $result )) {
             
    $idPost  $row [ 'idPost' ];
             
    $strUser  HTMLSpecialChars ( $row [ 'strUser' ]);
             
    $memText  nl2br ( HTMLSpecialChars ( $row [ 'memText' ]));
             
    $dtmCreated  $row [ 'dtmCreated' ];
             
             if(
    $color  ==  "#dddddd" ) {
                
    $color  "#cccccc" ;
             } else {
                
    $color  "#dddddd" ;
             }
    ?>
          <tr>
             <td width="150" style="background-color: <?php  echo  $color ?>"  valign="top">
                <?php  echo  $strUser ?><br /><?php  echo  date ( "d.m.y, H:i" $dtmCreated ?>
             </td>
             <td width="350" valign="top" style="background-color: <?php  echo  $color ?>">
                <?php  echo  $memText ?>
             </td>
          </tr>
    <?php

         
    }
       } 
       
    ?>
          <tr id="new_replies">
             <td style="display: none;">
                &nbsp;
             </td>
             <td style="display: none;">
                &nbsp;
             </td>
          </tr>
       </table>
       <br />
       <div id="add_reply" style="width: 350px; border: 1px solid black; background-color: #eeeeee; margin-top: 1px; padding: 2px;">
          <input onClick="add_reply();" type="button" value="add reply" style="border: 1px solid black; background: #ffffff; font-family: Verdana; font-size: 10px;" />
       </div>

    </body>
    </html>
    in der add_reply.php ist in meinem fall nur die db-abfrage (insert).
     
  6. 14. September 2006
    AW: Formulardaten schicken...

    Jaa.. hab jetz nurnoch n Problem mit dem MSIE, da funktionierts nich wie es soll, aber soweit schonmal danke habt alle nen grünen
     
  7. 14. September 2006
    AW: Formulardaten schicken...

    meine glaskugel ist kaputt, ich kann also deinen quellcode nich sehen und dir sagen, was falsch is.
     
  8. 15. September 2006
    AW: Formulardaten schicken...

    Code:
     function doSend (action,id) {
     if (window.XMLHttpRequest) { // Mozilla, Safari, Opera, ...
     http_request = new XMLHttpRequest();
     } else if (window.ActiveXObject) { // IE
     http_request = new ActiveXObject("Microsoft.XMLHTTP");
     }
     
     http_request.open('POST', 'a_entry.php', true);
     http_request.onreadystatechange = handleRequest;
     http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
     post_id = id;
     post_name = document.getElementById('name').value;
     post_text = document.getElementById('text').value;
     post_mail = document.getElementById('mail').value;
     http_request.send('id=' + id + '&name=' + post_name + '&text=' + post_text + '&mail=' + post_mail + '&action=' + action);
     }
    
     function handleRequest() {
     if(http_request.readyState == 4 && http_request.status == 200) {
     document.getElementById('ShowReq').innerHTML = http_request.responseText;
     document.getElementById('inputs').style.display = 'none'; //IE meldet den Fehler in dieser zeile.
     }
     }
     
     function SendReq(action,id) {
     doSend(action,id);
     handleRequest();
     } 
    
    IE meint es wäre ein "Unbekannter Laufzeitfähler"...
     
  9. 15. September 2006
    AW: Formulardaten schicken...

    gibt's denn in deinem code ein element mit der is "inputs"? wenn ja, was für ein element ist es?
     
  10. 16. September 2006
    AW: Formulardaten schicken...

    ja gibts selbstverständlich, es ist ein div-tag.
    des sind nur die eingabefelder die solln verschwinden wenn gepostet wurde
     
  11. 16. September 2006
    AW: Formulardaten schicken...

    ohne kompletten quellcode kann ich's nich testen...
     
  12. 16. September 2006
    AW: Formulardaten schicken...

    hab dir ne pm mit der internetadresse geschickt.
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.