Помните, что вы отправляете сообщения через AJAX, поэтому даже если вы возвращаете значение поля, оно не будет отображаться на вашем экране, если вы не прослушиваете его в обратном вызове $ .post.
Чтобы проверить, в чем может быть проблема, отправьте форму без jQuery. Если ваш PHP-скрипт возвращает значение поля, то PHP-скрипт работает - проверьте ваш JavaScript. Если при использовании print_r () вы получаете пустой или пустой массив, убедитесь, что имя поля в вашей форме совпадает с именем, которое вы используете в сценарии PHP.
Не хочу, чтобы вам приходилось переписывать свой код, но вот что я рекомендую сделать.
<form class="comments" method="post" action="user_submit.php">
<input type="text" name="comment" />
<input type="submit" value="Submit" />
</form>
JavaScript:
$('.comments').submit(function() {
var $form = $(this);
$.post(
$form.attr('action'),
$form.serialize(),
function(data, status) {
console.log(data);
}
);
return false;
}
Это отправит вашу форму в скрипт PHP. В функции обратного вызова «data» - это возвращаемые данные из сценария PHP. Поэтому, если вы вернете значение поля назад, консоль Firebug отобразит значение.
Если в браузере пользователя отключен JavaScript, форма все равно будет отправлена правильно. Конечно, ваш PHP-скрипт должен будет проверить, была ли форма отправлена через AJAX, чтобы она могла правильно обрабатываться в зависимости от метода запроса. Простой способ проверить это проверить заголовок X-Requested-With. Если он был отправлен через AJAX, значение будет XMLHttpRequest.