передать многомерный массив из JavaScript в PHP - PullRequest
0 голосов
/ 27 ноября 2009

Я использую код javascript, который считывает значения из разных XML-файлов и создает многомерный массив на основе этих значений. Теперь мне нужно передать этот массив на страницу PHP. Я пробовал разные, но он всегда передает массив как строку, а не как массив. У любого есть идея :( ... и большое спасибо

Ответы [ 2 ]

1 голос
/ 27 ноября 2009

Что сказал Калеб. Используйте this и JSON кодируйте ваш массив JS в строку, отправьте его в PHP и используйте json_decode для декодирования его в массив PHP.

0 голосов
/ 27 ноября 2009

Для этого вам необходим JSON-кодер / декодер. В прототипе он реализован по умолчанию, и с помощью jQuery вы можете использовать jQuery-JSON

Например, если вы используете Prototype в качестве библиотеки JS, вы можете преобразовать свой массив в строку, подобную этой:

var example_multi_dim_arr = {"a":[1,2,3], "b": [4,5,6]};
var string_to_be_sent_to_server = Object.toJSON(example_multi_dim_arr);

А на стороне PHP (при условии, что строка JSON передается в сценарий как переменная POST)

$multi_dim_arr = json_decode($_POST["variable_with_json"], true);

Последнее поле true в json_decode указывает, что выходные данные должны быть в форме массива ($multi_dim_arr["a"]), а не в виде объекта ($multi_dim_arr->a).

NB! функция json_decode изначально недоступна в PHP 4, вы должны найти соответствующий класс JSON, если вы используете более старые версии PHP. В PHP 5 все должно работать нормально.

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