2015-07-03 6 views
8

Форма:AJAX форма представления - данные не возвращаются

<form action="" id="register" method="post"> 
    <input type="text" placeholder="eg. John"> 
    <input type="text" placeholder="eg. Appleseed"> 
    <input type="text" placeholder="[email protected]"> 
</form> 

JS:

$('form#register').on('submit',function (e) { 
    $.ajax({ 
     url: 'submit.php', 
     cache: false, 
     type: 'POST', 
     context: this, 
     data : $(this).serialize(), 
     success: function(json) { 
      console.log("json: " + json); 
     } 
    }); 
    e.preventDefault(); 
}); 

PHP:

$formData = json_encode($_POST); 
echo print_r($formData,1); 

... после заполнения формы и нажатия представить, что делает отправьте форму без ошибок, но данные, возвращенные (JSON), пустые:

json: []

Что я делаю неправильно?

+0

Вам нужно сделать некоторые основные отладки. Просмотрите вкладку «Сеть» ваших инструментов разработчика. Посмотрите на запрос, отправленный на 'submit.php'. Имеет ли в нем данные формы, которые вы ожидаете? Посмотрите на ответ. Он содержит данные, которые вы ожидаете? – Quentin

+0

Используйте сетевой тег разработчика. Проверьте, какие данные отправляются на сервер и какие данные возвращаются с сервера. – OIS

+0

Единственный способ, которым я смог воспроизвести это, - это если в форме не было сериализуемых данных (которые вы не использовали с нами). – Quentin

ответ

4

Это потому, что вы не используете name атрибут в ваших полях

serialize() 

Требуется name поле в форме

+0

Ах, спасибо, спасибо! – 3zzy

+0

Мое удовольствие приятель .. –

2

1: -

$formData = json_encode($_POST); echo print_r($formData,1);

должно быть: -

$formData = json_encode($_POST); 
echo $formData; 

2.You не имеющие name атрибут в ваших полях формы. укажите, что иначе serialize() не будет работать правильно.

+0

Какая разница между возвратом данных и повторением? – madalinivascu

+1

он использовал оба 'echo and print_r' оба вместе, что неверно –

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