2013-07-05 43 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,你是好去!