点击事件在谷歌地图和AJAX

click event in google maps and AJAX

本文关键字:AJAX 谷歌地图 事件      更新时间:2023-09-26

我有一个地图,当用户点击标记在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.*/