我有一个地图,当用户点击标记在php文件中发出AJAX请求时,我会尝试使用标记,AJAX发送为json lat / long of marker和lat文件中的lat / long用户文件在db中进行查询并返回带有几何结果的json数组。当我运行mozila consol时没有显示任何错误,如果我把一个alert(ar.latStart);
的ajax显示数据。
Json数据
var coords = {'latStart': latPos , 'longStart' : longPos , 'latend' : latitude , 'longEnd' : longitude};
谷歌地图的事件是
google.maps.event.addListener(marker, 'click', function() {
var latitude = this.position.lat();
var longitude = this.position.lng();
var coords = {'latStart': latPos , 'longStart' : longPos , 'latend' : latitude , 'longEnd' : longitude};
getCoords(coords);
});
ajax函数getCoords
是
function getCoords(ar) {
alert(ar.latStart); //the alert show the values is hasnt have problem
$.ajax({
url: 'routing.php',
type: 'GET',
data: ar ,
cache: false,
dataType : 'json',
success: function(rsp){
alert(JSON.stringify(rsp)); //show an empty alert
}
});
}
和php文件
if(isset($_GET['data'])){
$obj = json_decode($_GET['data']);
//some php operation
}
echo $obj;
正如我所说的那样,mozilla并没有显示出任何问题,这显示了阿贾克斯成功的空洞警报。 请问是否有任何人可以帮助我,我尝试了几天,但我找不到什么错误
答案 0 :(得分:0)
因为名为data
的请求中没有密钥,所以这不起作用:
$_GET['data'] // because this key is not in the request.
相反,您可以尝试发送它:
getCoords({"data":coords});
并在php结束时:
if(isset($_GET['data'])){
$obj = json_decode($_GET['data']);
//some php operation
}
echo json_encode($obj); /*<---encode it and echo.*/