Как получить значения POST от serializeArray в PHP?

Я пробую этот новый метод, который я видел serializeArray().

//with ajax
var data = $("#form :input").serializeArray();
post_var = {'action': 'process', 'data': data };
$.ajax({.....etc

Таким образом, я получаю этих пар значения ключа, но как я получаю доступ к ним с PHP?

Я думал, что должен был сделать это, но это не будет работать:

// in PHP script
$data = json_decode($_POST['data'], true);

var_dump($data);// will return NULL?

Спасибо, Richard

5
задан Richard 10 February 2010 в 15:28
поделиться

3 ответа

Как предположил Gumbo, вы, вероятно, не обрабатываете возвращаемое значение json_decode.
Попробуйте

$data = json_decode($_POST['data'], true);
var_dump($data);

Если $data не содержит ожидаемых данных, то var_dump($_POST); чтобы посмотреть, что Ajax вызов отправил в ваш скрипт. Возможно, вы пытаетесь получить доступ к JSON с неправильного ключа.

EDIT
На самом деле, вы должны убедиться, что вы действительно отправляете JSON в первую очередь :)
. В документации jQuery для состояния serialize Метод .serializeArray() создает JavaScript массив объектов, готовый к кодированию в виде строки JSON. Готовый к кодированию массив не является JSON. Очевидно, в jQuery нет функции Object2JSON, поэтому либо используйте https://github.com/douglascrockford/JSON-js/blob/master/json2.js как стороннюю либу, либо используйте http://api.jquery.com/serialize/ вместо нее.

7
ответ дан 18 December 2019 в 09:07
поделиться

Возвращаемая структура JSON не является строкой. Вы должны использовать плагин или стороннюю библиотеку для ее "структуризации". Смотрите здесь:

http://www.tutorialspoint.com/jquery/ajax-serializearray.htm

4
ответ дан 18 December 2019 в 09:07
поделиться

javascript не меняет способ размещения значений, не так ли? Разве вы не должны иметь доступ к значениям через PHP, как обычно, через $_POST['name_of_input_goes_here']

edit: вы всегда можете выгрузить содержимое $_POST, чтобы увидеть, что вы получаете от отправки формы javascript, используя print_r($_POST). Это даст вам некоторое представление о том, что нужно сделать в PHP, чтобы получить доступ к нужным вам данным.

0
ответ дан 18 December 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: