Javascript JSON массив в PHP-массив - PullRequest
2 голосов
/ 11 февраля 2011

Я пытался использовать jQuery UI Nested Sortable 1.2.1 из http://mjsarfatti.com/sandbox/nestedSortable, где он подготавливает массив JavaScript как

ret.push({"id": id, "par_id": pid, "title": title, "depth": depth, "left": left, "right": right});

Я пытался отправить эти данные через скрытое поле как

<input id="menuArray" name="menuArray" type="hidden" value="" />    
$('#submit').click(function(){
var ma = $('ol.sortable').nestedSortable('toArray');
$("#menuArray").val(ma);
$('form#target').submit();
});

Однако, когда я делаю

<code>echo '<pre>';
print_r($_POST['menuArray']);
echo '
';

Все, что я получаю, это:

<code><pre>[object Object],[object Object],[object Object] ...

Любое решение / советы / подсказки друзьям?

1 Ответ

2 голосов
/ 11 февраля 2011

На самом деле вы нигде не кодируете JSON.Вам нужно использовать JSON.stringify, когда вы устанавливаете значение скрытого ввода:

$('#submit').click(function() {
    var ma = $('ol.sortable').nestedSortable('toArray');
    $("#menuArray").val(JSON.stringify(ma));
    $('form#target').submit();
});

Обратите внимание, что JSON.stringify не поддерживается более старыми браузерами (например, IE 7), вам придется включить json2.js для полной поддержки.

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