2013-07-05 191 views
-2

我有麻煩發送和接收使用$ .getJSON()無法獲得.getJSON工作

的index.html JSON對象,我發送一個GET JSON請求發送對象和檢索數據

var newtable = { 
"query":"create", 
"num":"2" 
}; 
var crypt=JSON.stringify(newtable); 
$.getJSON('php/table_manager.php',crypt,function(data){alert(data);}); 

PHP/table_manager.php,我寫一個腳本來簡單地返回JSON對象:

$data = json_decode($_POST); 
$return = json_encode($data); 
echo $return; 

但是,$return爲空。請幫我解決這個問題。

+0

你看過'$ _POST'變量包含了什麼嗎? [json_decode](http://au1.php.net/json_decode)返回null,如果它不能解碼你給它的數據,並且json_encode可能只是合作存儲一個空值。我敢打賭,'$ _POST'不是你應該解碼的東西 - 你可能需要用它來做點什麼來獲得你想要的值。裏面可能有些東西需要處理。 – doppelgreener

+0

嗯我想這就是爲什麼。那麼我怎麼能在php中檢索JSON對象? –

+0

我不知道'$ _POST'是如何工作的,或者我會留下一個答案。在腳本中查看'$ _POST'變量並研究它的文檔。我上次使用PHP已經有好幾年了,所以我已經忘記了。 – doppelgreener

回答

0

當您將一個對象提交給$ .getJSON時,它將被jQuery解壓縮到單獨的變量中,併發送給服務器。因此,在服務器上,您將擁有$_GET['query'] == "create"$_GET['num'] == "2"$_GET['num'] == "2"

所有您需要做的就是json_encode($ _GET)並將其發送回去 - 無需先解碼。

+2

'$ .getJSON'發送一個GET請求,所以你的回答應該指的是'$ _GET'而不是'$ _POST' – itsmejodie

+0

@itsmejodie tks我的代碼現在正在工作 –

+0

@itsmejodie注意和糾正。 – 2013-07-05 04:50:30

0

jQuery的ajax套件函數$.getJSON發送類型爲'GET'的請求。

PHP/table_manager.php是:

$data = json_decode($_POST); 
$return = json_encode($data); 
echo $return; 

試圖通過$_POST檢索崗位價值,改變以$_GET,你是好去!