2009-11-27 2 views
0

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

ответ

0

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

Например, если вы используете прототип в качестве библиотеки 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 все должно работать нормально.

+0

Привет, благодарю вас за ответ;) .. im, используя эту библиотеку, и он отлично подходит для кодирования и декодирования, так как im не получает сообщения об ошибке. Плюс к использованию метода GET для передачи этого массива из java-скрипта в php. Проблема в том, что im не получает никакого значения, когда im пытается выполнить команду echo ... код на странице php: $ multi_dim_arr = $ _REQUEST ['the_array']; $ clustering_activities = json_decode ($ multi_dim_arr); echo $ clustering_activities [0] [0]; и им не получают никакой ценности. кажется, что декодирование не работает должным образом. Есть идеи !? .. и спасибо;) – Beso

+0

просто забудьте упомянуть, что я также попробовал его с истинным значением, например $ multi_dim_arr = json_decode ($ _ POST ["variable_with_json"], true); но то же самое ... всегда нет значений: ((( – Beso

+0

Вы кодируете строку json в URL-адресе GET? url = "http://www.example.com/target.php?the_array=" + encodeURIComponent (json_str) – Andris

1

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

Смежные вопросы