我有一个地图,当用户点击标记在php文件中发出AJAX请求时,我会尝试使用这些标记,AJAX将标记的lat/long和php文件中用户的lat/lang作为json发送。文件在db中进行查询,并返回一个带有结果几何图形的json数组。当我运行mozila控制台时,如果我放了一个ajax的alert(ar.latStart);
frond来显示数据,它就不会显示任何错误。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在consol中没有显示任何问题,显示了Ajax成功的空洞警报。如果有人能帮我的话,我试了好几天,但我找不到错误的
因为请求中没有名为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.*/