2012-06-04 164 views
0

我的php版本是5.2.17,當我做json_decode($_GET['getItem'])返回null結果!
JSON返回null數據

function getItem(id){ 
$.getJSON(
    "items.php", 
    { getItem: '{"item": "' + id + '"}'}, 
    function(json) { 
     $("#"+json.itemName).html(json.itemData); 
     } 
); 

items.php

header('Content-Type: application/json'); 
$jItemArray = json_decode($_GET['getItem']); 
var_dump($jItemArray); 
die; 
+0

'var_dump(json_decode('{「item」:「3」}'));'工作正常,你確定'$ _GET ['getItem']'被填滿了嗎? – Esailija

+2

$ _GET ['getItem']上的值是什麼? –

+0

你檢查過PHP錯誤嗎? – Sirko

回答

-3

你的PHP應該是:

header('Content-Type: application/json'); 
echo json_encode($_GET['getItem']); 
2

我認爲PARAMS要得到URI編碼。我會輸出$_GET['getItem']的值來看看它是什麼。我猜你只需要先通過urldecode運行它,然後再運行json_decode就可以了。

與那說...有沒有原因你發送 json而不是標準參數編碼?

+1

'urldecode'被自動調用''_GET'項目,它看起來不像是有雙重編碼,因爲他只是將對象傳遞給處理編碼的jQuery – Esailija

+0

是的,有一個原因,我希望結果是排列! –

+0

@АйменАхмед:這與你發送的內容有什麼關係?你可以發送任何你想要的,然後返回一個json編碼的數組或散列。 – prodigitalson

1

呀,問題是在$_GET['getItem']我發現它的數據是不正確的那樣
array(1) { ["getItem"]=> string(18) "{\"item\": \"35\"}" }
並通過php.inimagic quotes把它完美的作品

magic_quotes_gpc = Off
謝謝大家指點我出來