2015-03-02 6 views
0

Моя форма:Невозможно обработать простую форму, представленную JQuery AJAX

<form id="new-protocol-form" method="post" role="form"> 
    <textarea name="text"></textarea> 
</form> 

Мой JQuery Аякса:

$('#submitProtocol').click(
    function() { 
     $.ajax({ 
      type: "POST", 
      url:  "newProtocol.php", 
      data: $('#new-protocol-form').serialize(), 
      success: function() { alert{'ok'} }, 
      error: function() { alert('error'); } 
     }); 
    } 
); 

Мой newProtocol.php :

<script> 
    alert(<?php echo $_POST['text']; ?>); 
</script> 

окно оповещения с «OK», текстом вызванным АЯКС «успехом» метод показано, но я не могу получить окно предупреждения с $_POST['text'] значения из newProtocol.php файла. Ошибка в javascript-консоли.

ответ

1

Вам необходимо использовать $_POST['text']. Вы используете круглые скобки, в которых вы не должны быть.

Кроме того, поскольку вы используете AJAX, вы, вероятно, не хотите переходить на другую страницу. Ваши предупреждения в вашей функции успеха никогда не срабатывают, если вы не предотвратите поведение по умолчанию.

newProtocol.php

<?php 
    echo $_POST['text']; 
?> 

JQuery

$('#submitProtocol').click(function(event) { 
     event.preventDefault(); // stop the default click behavior 
     $.ajax({ 
      type: "POST", 
      url:  "newProtocol.php", 
      data: $('#new-protocol-form').serialize(), 
      success: function(data) { 
       console.log(data); // show the text being returned 
      }, 
      error: function() { console.log('error'); } 
     }); 
    } 
); 

Кроме того, quit using alert() для получения возвращаемых значений и устранения неисправностей.

+0

Спасибо, но все та же проблема. И предупреждение в моей функции успеха в настоящее время является огнем, как я уже упоминал в своем вопросе. – Incredible

+0

Просмотреть мои обновления и сообщить мне, что произойдет. –

+0

Означает ли это, что все html из newProtocol.php хранится в переменной данных? – Incredible

0

Во-первых, $_POST не является функцией, это массив. Таким образом, это должно быть $_POST['text']. Кроме того,

<script> 
    alert(<?php $_POST('text'); ?>); 
</script> 

не будет создавать предупреждение, как вы ожидаете, так как запрос async не запускает какой-либо javascript на целевой странице.

Поскольку вы пытаетесь проверить, работает ли AJAX, лучший способ - проверить, какая дата была возвращена с этого запроса. Пример:

//... 
success: function(data) { console.log(data) }, 
//... 
Смежные вопросы