Отправка JSON в PHP - PullRequest
       3

Отправка JSON в PHP

1 голос
/ 18 декабря 2010

Я пытаюсь отправить JSON на страницу PHP через jQuery, но она не работает должным образом:

json_data = {};
json_data.my_list = new Array ();

$('#table_selected tr').each (function (i) {
    json_data.my_list.push ({id:$(this).attr("id")});
});

$.post ("my_page.php", json_data, function (response) {
    if (response) alert("success");
    else alert("error");
});

<?php
// this is my_page.php
$json = json_decode (stripslashes ($_REQUEST['my_list']), true);
echo var_dump($json);

?>

Это возвращает NULL на мой callback где я не прав?

Ответы [ 3 ]

2 голосов
/ 18 декабря 2010

вам не нужно эхо до var_dump

2 голосов
/ 18 декабря 2010

JSON - это строка представление объектов JavaScript. Вы отправляете что-то похожее на это:

{my_list: [{id: 'foo'}, {id: 'bar'}, {id: 'baz'}]}

Что не является JSON. Это является JSON:

'{"my_list": [{"id": "foo"}, {"id": "bar"}, {"id": "baz"}]}'

Я бы рекомендовал использовать json2.js ( подробнее ). Этого можно добиться, используя .serializeArray().

1 голос
/ 18 декабря 2010

json_data - это литерал с массивом внутри, который вы помещаете в качестве параметра в сообщение, и он будет отправлен в виде закодированного массива в запросе публикации на сервер.

В my_page.php вы можете захотетьчтобы посмотреть на $_POST массив.

ОБНОВЛЕНИЕ: Эмм, я перечитал ваш вопрос, и я не совсем уверен в том, что я написал.То, что я сказал, относится к GET-запросу, и я верю также и к отправке запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...