2016-07-13 3 views
0

Я AJAX noob. Я писал код, чтобы понять это, но независимо от того, что я не мог заставить его работать. Textarea в коде должен обновить comment_area комментария id=218, когда пользователь нажал кнопку «Сохранить». Вероятно, ошибка в коде AJAX, который я не смог найти.Простой пост ajax не работает

Мой AJAX скрипт:

<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> 

Мой update.php файл

<?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

Вы уязвимы к [SQL Injection атак] (HTTP : //bobby-tables.com). вы также не прерываете отправку формы, так что, вероятно, вы убиваете свой запрос ajax при выгрузке страницы. –

+0

Вам также необходимо добавить preventDefault(), чтобы убедиться, что форма не идет вперед и не выполняет свою собственную заявку –

+0

Вы просматривали запрос/ответ AJAX в инструментах разработчика браузера? Включили ли вы библиотеку jQuery в проект? Есть ли сообщения об ошибках? Вы используете это на веб-сервере? –

ответ

2

В submit работает на form и у вас есть на input элемент.

Try:

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

Документация может быть found here

Кроме того, если динамически загружены эти элементы DOM, вы можете read up on event delegation

+0

ty я исправил его, но все еще не работал. – anor

+0

«Не работает» для меня очень расплывчато, чтобы я мог вам помочь. Пожалуйста, будьте более конкретными. Кроме того, узнайте, как использовать контрольные точки в консоли разработчика. Вы можете проверить ответ и посмотреть, что происходит. – karthikr

+0

В консоли нет ни одной ошибки. Нет ошибок. Я протестировал свой php-файл. Он работает отлично. Только проблема в этом javascript-коде не может отправлять переменные в мой .php-файл. – anor

Смежные вопросы