2017-02-02 10 views
0

Hallo iam lernen jquery mit php. Ich habe sehr kleinen PHP und Jquery Code erstellt, um Wert zu bekommen, aber es funktioniert nicht. Ich überprüfe die Konsole, gebe aber keine Informationen weiter, die ich erwähnt habe. Jquery api documentation gleicher Prozess, dem ich gefolgt bin, aber nicht benutzt. Wie kann ich das lösen?Einfache jquery ajax post php funktioniert nicht

<script> 
    $(document).ready(function(){ 
     $("#submit").click(function(){ 
      var term= $("#sterm").val();   
      $.post('oopsdata.php', {nwterm: term}, function(data){ 
       ("#container").html(data); 
      }); 
     }); 
    }); 
    </script> 

    <body> 
    <form class="" action="" method="post"> 
     <input type="text" name="" value="" id="sterm"> 
     <input type="submit" name="" value="Search term" id="submit"> 
    </form> 
    <div id="container">olddata</div> 

PHP-Code

<?php 
    $newterm = $_POST['nwterm']; 
    if($newterm == 'bio'){ 
     echo "Request received This is the new data" 
    } else { 
     echo "no data received;" 
    } 
?> 
+0

[Haben Sie beobachtet die AJAX-Request/Response in den Entwicklertools Browser? Haben Sie die jQuery-Bibliothek in das Projekt aufgenommen? Werden Fehler gemeldet? Führen Sie dies auf einem Web-Server aus?] (Http://jayblanchard.net/basics_of_jquery_ajax.html) –

+0

nicht den Absenden-Button als Typ senden oder verhindern Standard machen – webDev

+1

Erstens: '(" #container "). Html (Daten); 'Das' $ 'fehlt hier vor den Klammern. Zweitens: Wenn Sie ein Formular abschicken, wird die Seite normalerweise neu geladen, so dass Sie die Ausgabe Ihres Ajax-Anrufs nicht sehen können. Verwenden Sie 'event.preventDefault' oder verwenden Sie keine Senden-Schaltfläche – empiric

Antwort

3

Es gibt einige Probleme mit Ihrem Code, wie zum Beispiel:

  • Sie benötigen eine Form zu verhindern, dass an erster Stelle vorgelegt werden. Verwenden Sie jQuery .preventDefault()
  • Fehlende $ vor ("#container").html(data);

Basierend auf den beiden oben genannten Punkte, Ihre jQuery-Code sollte wie folgt sein:

$(document).ready(function(){ 
    $("#submit").click(function(event){ 
     event.preventDefault(); 
     var term= $("#sterm").val();   
     $.post('oopsdata.php', {nwterm: term}, function(data){ 
      $("#container").html(data); 
     }); 
    }); 
}); 
  • Es gibt zwei Syntaxfehler in Ihrem PHP-Code. Fehlende ; in Ihren beiden echo Aussagen.

So basierend auf dem obigen Punkt sollten Sie Ihre PHP-Code wie folgt sein:

<?php 
    $newterm = $_POST['nwterm']; 
    if($newterm == 'bio'){ 
     echo "Request recieved This is the new data"; 
    }else{ 
     echo "no data recieved"; 
    } 
?> 
+0

Vielen Dank – muraliniceguy97