有人能告诉我为什么这个带有JqUERY的简单JSON不适合我吗?
我有这个JS代码,
var jsonParam = <? $json = $_SESSION['searchSess']; echo json_encode($json);?>;
jsonParam = JSON.stringify(jsonParam);
$(document).ready(function(){
$.post("searching.php?rdr=search", {data: jsonParam,}, function (data){
alert(data)
})
});
这是PHP代码,
$data = json_decode($_POST['jsonParam'], true);
var_dump($data);
并且响应为空或什么都没有,
能请人帮忙吗?
感谢
您想要的是$_POST['data']
,而不是$_POST['jsonParam']
。
jsonParam
是JavaScript变量,但由于将{data: jsonParam}
传递到$.post
中,因此它被作为$_POST['data']
发布到PHP中。
// Instead:
$data = json_decode($_POST['data'], TRUE);
var_dump($data);
{jsonParam: jsonParam,}
而非{data: jsonParam,}
尝试以下操作:
JS:
var jsonParam = <?
$json = $_SESSION['searchSess'];
$json['longitude'] = (string) $json['longitude'];
$json['latitude'] = (string) $json['latitude'];
echo json_encode($json);
?>
$(document).ready(function(){
$.post("searching.php?rdr=search", {data: jsonParam }, function (data){
alert(data)
})
});
PHP:
$data = json_decode($_POST['data'], true);
var_dump($data);
我怀疑您的经度和纬度字段没有被正确解析为浮动。
$data = json_decode($_POST['jsonParam'], true);
应为$data = json_decode($_POST['data'], true);