2009-11-27 98 views
0

我運行一個JavaScript代碼,它讀取不同XML文件中的值,並根據這些值生成多維數組。現在我需要將這個數組傳遞給一個PHP頁面。我嘗試了不同的方式,但它始終將字符串傳遞給arrray而不是數組。 任何人有一個想法:(...並非常感謝你從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); 

json_decode最後true字段指示該輸出應在一個形式數組($multi_dim_arr["a"])而不是作爲對象($multi_dim_arr->a)。

注意!函數json_decode在PHP 4中不是本地可用的,如果您使用的是較早版本的PHP,則應該找到相應的JSON類。在PHP 5中,一切都應該正常工作。

+0

嗨,謝謝你的答案;)..即時通訊使用這個庫,它看起來很好的編碼和解碼,因爲我沒有得到任何錯誤消息。 Plus im使用'GET'方法將這個數組從java腳本傳遞給php。問題是,即時通訊嘗試echo命令時,我沒有得到任何價值...在PHP頁面中的代碼是: $ multi_dim_arr = $ _REQUEST ['the_array']; $ clustering_activities = json_decode($ multi_dim_arr); echo $ clustering_activities [0] [0]; 我沒有得到任何價值。似乎解碼不能以正確的方式工作。任何想法 !? ..和謝謝;) – Beso 2009-12-10 18:26:49

+0

只是忘了提及,我也試過它與真正的價值,如$ multi_dim_arr = json_decode($ _ POST [「variable_with_json」,true);但相同...總是沒有值:((( – Beso 2009-12-10 18:31:04

+0

你編碼在GET url中的json字符串? url =「http://www.example.com/target.php?the_array=」+ encodeURIComponent(json_str ) – Andris 2009-12-10 20:31:34

1

什麼迦勒說。 使用this和JSON你的JS數組編碼爲一個字符串,將其發送到PHP和使用json_decode將其解碼成PHP陣列。