2016-07-13 25 views
0

Ich bin ein AJAX-Noob. Ich habe Code geschrieben, um es zu verstehen, aber egal, was ich nicht schaffen konnte. Textarea im Code sollte comment_area des Kommentars von id=218 aktualisieren, wenn der Benutzer die Schaltfläche "Speichern" drückte. Es gibt wahrscheinlich einen Fehler in meinem AJAX-Code, den ich nicht finden konnte.Einfache Ajax Post funktioniert nicht

Mein AJAX-Skript:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#save").submit(function() { 
     var text = $('#breaking_news_text').val(); 
     var id = 218, 
     $.ajax({ 
      type: "POST", 
      url: "update.php", 
      data: {comment_area:text , id:id} 
      success: function() { 
       alert("sucess"); 
      } 
     }); 
    }); 
}); 
</script> 
<div id="b_news"> 

     <form method="post" action=""> 
     <div> 
      <div> 
       <textarea id="breaking_news_text" class="breaking_news_text" rows="6" cols="50" placeholder="Add text here..." required></textarea> 
      </div> 
     </div> 
     <div> 

      <input type="button" id="save" value="Save Changes"/> 

     </div> 
     </form> 

</div> 

Meine update.php Datei

<?php 
include("./inc/connect.inc.php"); 

    if(isset($_POST['comment_area'])) 
    { 
      $update = mysqli_real_escape_string($mysqli, $_POST['comment_area']); 
      $sql = "update comments set comment_area='$update' Where id='".$_POST['id']."'"; 
      $result = mysqli_query($mysqli, $sql); 

    } 
?> 
+1

Sie sind anfällig für [SQL-Injection-Angriffe] (http : //bobby-tables.com). Sie unterbrechen auch nicht die Übermittlung des Formulars, daher wird Ihre Ajax-Anfrage wahrscheinlich gelöscht, wenn die Seite entladen wird. –

+0

Sie müssen auch eine preventDefault() hinzufügen, um sicherzustellen, dass das Formular nicht weitergeht und eine eigene Einreichung durchführt. –

+0

Haben Sie die AJAX-Anfrage/-Antwort in den Browser-Entwicklertools beobachtet? Haben Sie die jQuery-Bibliothek in das Projekt aufgenommen? Werden Fehler gemeldet? Laufen Sie das auf einem Webserver? –

Antwort

2

Die submit Arbeiten auf einem form und Sie haben es auf dem input Element.

Versuchen:

$("#b_news form").submit(function(evt) { 
    evt.preventDefault(); //this is required to stop the default form submission 

Dokumentation kann found here

auch sein, wenn diese dom Elemente dynamisch geladen werden, möchten Sie vielleicht read up on event delegation

+0

ty ich reparierte es aber immer noch nicht funktioniert. – anor

+0

"Hat nicht funktioniert" ist sehr vage für mich, Ihnen helfen zu können. Bitte sei spezifischer. Außerdem erfahren Sie, wie Sie Haltepunkte in der Entwicklerkonsole verwenden. Sie können die Antwort überprüfen und sehen, was vor sich geht. – karthikr

+0

Es gibt kein Prblem in der Konsole. Keine Fehler. Ich habe meine PHP-Datei getestet. Es funktioniert perfekt. Nur Problem hier kann dieser JavaScript-Code Variablen nicht an meine .php-Datei senden. – anor

Verwandte Themen