Ankündigung

Einklappen
Keine Ankündigung bisher.

Ajax post

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ajax post

    Hallo liebe community,

    mal wieder ein problem:
    Ich versuche ein formular mit ajax zu bauen also dass es nicht neu geladen werden muss. Da hab ich erstmal klein angefangen und ein textfeld und einen button gemacht. der inhalt vom textfeld wird per xmlhttp request an eine php datei gesender (form2.php) die erstmal nichts weiter macht als die übergebene variable auszugeben. Die ausgabe wird dann unterm formular angezeigt..
    So weit so gut. Es funktioniert soweit wenn ich es per GET mache. Da ich aber in zukunft relativ große texte versenden möchte ist GET unsinnig und ich will POST verwenden (ist doch richtig denk ich mal oder?!?!)
    Und daran scheitert es. Ich bekomme es nach stundenlangem rumprobieren nicht gebacken es per POST zu versenden.

    Habt ihr i-welche tipps was man beachten muss und woran es liegen könnte?

    Hier mal der GET Code von form 1:
    PHP-Code:
    <html>

    <
    script type="text/javascript">
        function 
    showResult(str)
        {
        if (
    str.length==0)
          { 
          
    document.getElementById("livesearch").innerHTML="";
          
    document.getElementById("livesearch").style.border="0px";
          return;
          }
        if (
    window.XMLHttpRequest)
          {
    // code for IE7+, Firefox, Chrome, Opera, Safari
          
    xmlhttp=new XMLHttpRequest();
          }
        else
          {
    // code for IE6, IE5
          
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        
    xmlhttp.onreadystatechange=function()
          {
          if (
    xmlhttp.readyState==&& xmlhttp.status==200)
            {
            
    document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
            
    document.getElementById("livesearch").style.border="none";
            }
          }
        
    xmlhttp.open("GET","form2.php?text="+str,true);
        
    xmlhttp.send();
        }
        
    </script>
        
    <form name="form" class="suche">
        <input type="text" size="30" name="name" class="suche" />
        <input type="button" value="" onclick="showResult(document.form.name.value)">
    </form>
    <div id="livesearch"></div>
        
    </html> 
    Und form 2:
    PHP-Code:
    <?php

    $text 
    $_GET["text"];
    echo 
    $text;

    ?>


    Und der Code mit POST (nicht funktionsfähig):
    Form1:
    PHP-Code:
    <html>

    <
    script type="text/javascript">
        function 
    showResult(str)
        {
        if (
    str.length==0)
          { 
          
    document.getElementById("livesearch").innerHTML="";
          
    document.getElementById("livesearch").style.border="0px";
          return;
          }
        if (
    window.XMLHttpRequest)
          {
    // code for IE7+, Firefox, Chrome, Opera, Safari
          
    xmlhttp=new XMLHttpRequest();
          }
        else
          {
    // code for IE6, IE5
          
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        
    xmlhttp.onreadystatechange=function()
          {
          if (
    xmlhttp.readyState==&& xmlhttp.status==200)
            {
            
    document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
            
    document.getElementById("livesearch").style.border="none";
            }
          }
        
        var 
    url "form2.php";
       var 
    params "text="+str;
       
    http.open("POST"urltrue);
        
    http.setRequestHeader("Content-type""application/x-www-form-urlencoded");
        
    http.setRequestHeader("Content-length"params.length);
        
    http.setRequestHeader("Connection""close");
        
    http.send(params);
            }
        
    </script>
        
    <form name="form" class="suche">
        <input type="text" size="30" name="name" class="suche" />
        <input type="button" value="" onclick="showResult(document.form.name.value)">
    </form>
    <div id="livesearch"></div>
        
    </html> 
    Form2:
    PHP-Code:
    <?php

    $text 
    $_POST["text"];
    echo 
    $text;

    ?>

  • #2
    Ich sage nur: Pass auf deine Variablennamen auf.

    Kommentar


    • #3
      Zitat von Asterixus Beitrag anzeigen
      Ich sage nur: Pass auf deine Variablennamen auf.
      Heißt das jetzt dass ich konkret irgendwo etwas falsch benannt habe oder meinst du das nur allgemein?

      Gehts etwas genauer bitte?

      Danke

      Kommentar


      • #4
        Zitat von phildaking Beitrag anzeigen
        Gehts etwas genauer bitte?
        Ja, geht - und zwar in der JavaScript-Fehlerkonsole deines Browsers.

        Kommentar


        • #5
          Zitat von ChrisB Beitrag anzeigen
          Ja, geht - und zwar in der JavaScript-Fehlerkonsole deines Browsers.
          Wusste gar nicht sowas gibt Habs jetzt in Firefox gefunden, benutze aber sonst Chrome wobei ich als entwickler wahrscheinlich lieber zu Firefox greifen sollte oder nicht?

          Naja aber danke vielmals funktioniert nach richtiger benennung der variablen!

          Kommentar


          • #6
            Zitat von phildaking Beitrag anzeigen
            Habs jetzt in Firefox gefunden, benutze aber sonst Chrome wobei ich als entwickler wahrscheinlich lieber zu Firefox greifen sollte oder nicht?
            Ich persönlich entwickle am liebsten im Firefox, u.a. deshalb weil ich mit Firebug als Debugwerkzeug inzwischen am besten vertraut bin.

            Andere Browser sind zum Entwickeln aber nicht unbedingt schlechter - Chrome ist m.W. sogar recht gut ausgestattet, was JavaScript-Debugging angeht (bietet m.W. bisher als einziger das Feature, dass man JavaScript-Code sogar live im Debugger verändern kann), Opera (Dragonfly) und Safari haben auch brauchbare Debug-Werkzeuge.
            Und sogar der IE hat ab Version 8 halbwegs brauchbare Debug-Tools, die man mit [F12] aufrufen kann.

            Kommentar


            • #7
              Ok danke für die Infos ich bin im bereich javascript soch eher ein neuling

              Allerdings gibt es für chrome auch den Firebug! Habe ich gleich geladen als ich angefangen hab mit AJAX!

              Vielen Dank nochmal

              Grüße PhilDaKing

              Kommentar

              Lädt...
              X