如何将jQuery回调函数的值传递给PHP脚本以进行进一步验证?这里,我从getJSON函数接收纬度和经度。我需要使用这些值来击中DB,其中它们将与现有坐标进行比较,以找到附近的位置;即邻近搜索。
$('#form_map').submit(function() {
var pc = $('#post_code').val();
if(pc != '') {
$.getJSON('/mod/gg.php?pc='+pc, function(data) {
lat = data.results[0].geometry.location.lat;
lng = data.results[0].geometry.location.lng;
});
}
return false;
});
我想把lat/lng的值变成php变量。这是近距离搜索。首先将用户输入的地址转换为坐标,然后通过PHP脚本访问DB。我需要从JSON数组返回的坐标可用作PHP变量,以便它们可以命中DB。
<?php
if(isset($lat) && isset($lng)){
// Do something
}
在收到lat/lng值后,我希望它们是<php $lat = 'Value of callback funcion'; $lng = 'Same'; ?>
,然后我可以运行其余的PHP脚本。我该怎么做呢?谢谢你。
首先:为什么不在回复ajax请求之前将值存储在DB中?
如果你真的想用"回调"来做,你可以使用第二个ajax作为回调来执行你的持久性脚本。
$.getJSON('/mod/gg.php?pc='+pc, function(data) {
lat = data.results[0].geometry.location.lat;
lng = data.results[0].geometry.location.lng;
$.post("/mod/storeindb.php", { lat : lat, lng : lng }, function(data){
// do something with whatever you return
});
});
}
你必须注意:php在服务器端执行,javascript在客户端执行。它们都是自治的,唯一连接它们的是HTTP请求。这些是异步运行的。这意味着你所调用的"回调"实际上是对另一个脚本的另一个ajax调用。
我只是这么说,因为我觉得你想要一个阻塞回调在同一脚本内线性执行(这是不可能的)。如果没有,忽略最后一段