2013-05-10 143 views
1

我正在使用此html和javascript將json數據發送到我的php文件。 http://jsfiddle.net/ExpertSystem/9aWNj/如何在php中訪問json數組?

如何訪問它從那裏在PHP回聲給出的元素?

東西線沿線的:

$value = json_decode($_POST["newOrder"]) 
echo $value[1]; 

我不知道如何從這個檢索數據。

+0

我的代碼是在這裏 - > jsbin.com/igewiv/1/edit和PHP的服務器上託管 - > top50.zxq.net/fiddle.php。我只是爲了能夠回顯一個選定的元素及其位置,即位置1中的2或任何可能的位置。所以我知道我可以將它們存儲在數據庫等。 – user1628206 2013-05-10 13:06:18

回答

0

試試這個:

$value = json_decode($_POST["newOrder"], true) 
echo "<pre>"; 
print_r($value); 

注意的第二個參數true,那給你輸出數組否則這將是對象。

0

檢查php手冊。

json_decode返回一個對象作爲默認值。使用第二個參數true返回一個數組。

json_decode($_POST["newOrder"], true) 
0

要像我想你可能想那麼我建議你把一個真實的json_decode函數在PHP中使用JSON。

這會給你以下幾點:

$json = json_decode($data,true); 
$json["sub-values"]["sub thing"]; 
0

爲什麼到JSON作爲發送POST請求的身體嗎?做簡單:

$.ajax({ 
    url: "<url_to_php_file>", 
    type: "POST", 
    data: { order: JSON.stringify(dataArr) } 
}); 

和服務器端使用:

$value = json_decode($_POST["order"]); 
echo $value[1]; 
1

這裏是一個的jsfiddle看到的JavaScript應該如何的情況下,你還是輸了: http://jsfiddle.net/9aWNj/3/

這是你的數據由php解碼:

`stdClass Object ([order] => Array ([0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 [8] => 10 [9] => 11 [10] => 1 [11] => 12))` 

要訪問它,它會b E:例如:

$order_0=$value->order[0]; 
$order_1=$value->order[1]; 

或者你使用真正的json_decode,它會變成這個樣子

$order_0=$value['order'][0]; 
$order_1=$value['order'][1]; 
+0

我試過$ value = json_decode($ _ POST [「newOrder」],true); echo $ order_0 = $ value ['order'] [0];並沒有從它的任何輸出,這個代碼有問題或其他地方的問題? – user1628206 2013-05-10 12:17:49

+0

你無法回聲$ order_0 = $ value ['order'] [0];它應該是2行:$ order_0 = $ value ['order'] [0]; echo $ order_0; – CodeBird 2013-05-10 12:38:32

+0

我還沒有收到任何輸出。我的代碼在這裏 - > http://jsbin.com/igewiv/1/edit並在php服務器上託管 - > http://top50.zxq.net/fiddle.php。我只是爲了能夠回顯一個選定的元素及其位置,即位置1中的2或任何可能的位置。所以我知道我可以將它們存儲在數據庫等。 – user1628206 2013-05-10 13:03:51

0

Json_decode返回結果的默認對象,讓你需要把第二個參數設置爲true陣列。

$ data = json_decode($ _ POST [「newOrder」],false);返回結果爲對象

打印對象使用

回聲$數據 - >東西;

$ data = json_decode($ _ POST [「newOrder」],true);返回結果作爲陣列

用於打印陣列使用

回聲$數據[ '東西'];

0

試試這個,它可能有幫助

$FP=fopen(JSON_DIR."JsonArray.txt",'r'); 
$J_ARRAY=fread($FP,filesize(JSON_DIR."JsonArray.txt")); 
$J_ARRAY=json_decode($J_ARRAY,JSON_FORCE_OBJECT);