Почему не работает этот jQuery Post? - PullRequest
0 голосов
/ 09 августа 2009

У меня проблема с отправкой значений ajax в мой PHP-скрипт для обработки.

Вот упрощенный ajax, который я использую;

$.post("register_user.php", { lastname: "gather", username: "johnny" } );

Это код PHP:

$lastname = $_POST['lastname'];
$username = $_POST['username'];

**** Mysql Insert into DB code Here *****

У меня более сложная ситуация с большим количеством отправляемых значений, но что я делаю не так? Я указал на Ajax, потому что, когда я вводил значения вручную вместо переменных $ _POST в PHP, все работает нормально. Он загружает страницу правильно, потому что мой php-скрипт отправляет пустые значения в базу данных.

Пожалуйста, помогите! Вот мой последний пост по проблеме: JQuery Ajax выпуск

EDIT

Я изменил код и включил в него сериализацию. Он успешно получает все поля формы, но не отправляет в базу данных, он по-прежнему выбрасывает пробелы. Я знаю, что мой PHP-код хорош. Firebug говорит, что 304 не изменено.

1 Ответ

2 голосов
/ 09 августа 2009

Две вещи:

Вы пытались изменить отправляемые данные, чтобы использовать функцию Serialize формы jQuery?

$('form :input').serialize()

Это займет весь текст, флажки, переключатели и т. Д. И добавит их к соответствующему значению для отправки. Вам просто нужно убедиться, что входные данные названы в соответствии с вашими переменными в вашем PHP-файле.

Также, совет: оберните назначения $ _POST простой проверкой:

// only allow AJAX POSTs
if (!empty($_POST) && isAjax())
{
  // code here
}
function isAjax() {
    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
    ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...