2016-09-11 2 views
0

Ich versuche Ajax zu lernen. Ich füge einige Daten zur mysql Datenbank von einem HTML-Formular durch php ein. Es funktioniert gut. Aber mein Ajax-Teil funktioniert nicht. Ich bekomme die Erfolgsmeldung, aber die Daten gehen nicht in meine PHP-Datei. Mein HTML- und JS-Code:Wie man Daten in MySQL-Datenbank mit Jquery Ajax und PHP einfügen?

<!DOCTYPE html> 
<html> 
<head> 
    <title>Insertion of data with Ajax</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script> 
</head> 
<body> 
    <form id="myForm" method="POST" action="ajax-save.php"> 

    Title: <input type="text" name="title" id="title"><br /><br /> 
    Description: <textarea name="description" id="description" rows="20" cols="40"></textarea><br /><br /> 
    Url: <input type="text" name="url" id="url"><br /><br /> 

    <input type="submit" id="submit" name="submit" value="submit"> 

    </form> 

    <script> 

    $(document).ready(function(){ 

     $("#submit").click(function(){ 
     $.ajax({ 
      url: 'ajax-save.php', 
      async: true, 
      cache: false, 
      data: $('#myForm').serialize() , 
      type: 'POST', 
      success: function(){ 
      alert("success"); 
      clearForm(); 
      } 
     }); 
      return false; 
     }); 

    }); 

    </script> 

</body> 
</html> 

Meine PHP-Codes funktionieren ordnungsgemäß. Ich habe es ohne Ajax getestet. Hier ist mein PHP-Code.

$conn = mysql_connect('localhost', 'root', ''); 
    $db = mysql_select_db('hospital'); 

    if (isset($_POST['title'])) { $title = $_POST['title'];} 
    if (isset($_POST['description'])) { $description = $_POST['description'];} 
    if (isset($_POST['url'])) { $url = $_POST['url'];} 

    if(isset($_POST['submit'])){ 
     if(mysql_query("insert into `wp_upload_video` (`id`, `title`, `description`, `url`) values (NULL, '$title', '$description', '$url')")) 
      echo "Successfully Inserted"; 
     else 
      echo "Insertion Failed"; 
    } 

Bitte lassen Sie mich wissen, wo ist meine Schuld.

+1

Es scheint mir, dass Ihre Aussage 'Meine PHP-Codes funktionieren 'wahrscheinlich nicht wahr ist. Wie weißt du, dass es nicht funktioniert? Inwiefern funktioniert es nicht? MYSQL Fehlerprotokoll? PHP Fehlerprotokoll? Javascript Konsolenfehler? Ohne diese Information ist es unmöglich zu sagen. Dein Ajax sieht gut aus. – user1167442

+0

Überprüfen Sie die Netzwerk- und Konsolenregisterkarten der Entwicklerwerkzeuge Ihres Browsers. – j08691

+0

Ich hielt die Priorität zwischen "Senden" und "Klicken" für vermasselt, also habe ich Ihren Code in jsfiddle eingefügt und 'error: alert (" failed ")' hinzugefügt. Endlich ist nichts aufgetaucht. –

Antwort

0

Wenn Sie über Ajax auf einen Klick auf die submit Schaltfläche senden .... diese Bedingung ist immer True.

zu überprüfen, ob $_POST['submit'] in der PHP gesetzt ist, wird immer Ergebnis in wahr denn wenn es nicht wahr ist die Ajax nie verarbeitet wird.

So ... entfernen Sie die If-Submit-Bedingung in der PHP und behandeln Fehlerbenachrichtigung in der Ajax-Aufruf.

Auch, wie von @NiettheDarkAbsol in Kommentaren hingewiesen, ist es eine gute Idee zu e.preventDefault() der Jquery als auch die Submit-Schaltfläche zu stoppen das Senden des Formulars, wie es normalerweise würde und ermöglichen der Jquery mit dem Einreichen (via Ajax).