点击谷歌地图和AJAX中的事件

时间:2015-04-01 11:04:33

标签: javascript php jquery ajax

我有一个地图,当用户点击标记在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并没有显示出任何问题,这显示了阿贾克斯成功的空洞警报。 请问是否有任何人可以帮助我,我尝试了几天,但我找不到什么错误

1 个答案:

答案 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.*/