我在这里尝试做的是将一个JavaScript变量发送到PHP函数。我正在开发的是一个jQuery移动应用程序,您可以在达到特定经度/纬度时办理登机手续。但我在将经度/纬度发送到PHP函数时遇到问题。我发送它到PHP函数,因为我将与我存储在我的数据库中的经度/纬度进行比较。
这是我的代码。
function testResults() {
if(navigator.geolocation) {
//Get the current position
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.write("lat", latitude);
document.write('<br /><br />');
document.write("long", longitude);
});
} else {
alert("Sorry... your browser does not support the HTML5 GeoLocation API");
}
//////////// Here I tried with jQuery/Ajax. I know that it's wrong.
//////////// Im putting it here so that it maybe clarifies what Im
//////////// trying to do.
$.post("checkLocation.php", {
lat : latitude,
longi : longitude
}, function(data) {
alert("Data Loaded: " + data);
});
////////////////////////////////////////////////////////////////////
}
testResults();
如何解决此问题?我尝试过使用JSON,但我没有让它工作。任何帮助将不胜感激。
答案 0 :(得分:2)
您在获得地理位置响应之前发送请求
您需要在回调中执行此操作。
答案 1 :(得分:0)
尝试使用AJAX
http://api.jquery.com/jQuery.ajax/
您的处理程序应如下所示:
$.ajax({
type: "POST",
url: "checklocation.php",
data: "lat="+latitude+"&longi="+longitude
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
答案 2 :(得分:0)
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.write("lat", latitude);
document.write('<br /><br />');
document.write("long", longitude);
});
这里有本地 vars纬度和经度。如果要在此函数之外使用它们,可以使用全局变量:
var latitude;
var longitude;
//...
navigator.geolocation.getCurrentPosition(function(position) {
latitude = position.coords.latitude;
vlongitude = position.coords.longitude;
document.write("lat", latitude);
document.write('<br /><br />');
document.write("long", longitude);
});
//usage(transfer) of vars
答案 3 :(得分:0)
尝试在回调中使用AJAX-Request(概念验证,不确定它是否有效):
function testResults()
{
if (navigator.geolocation)
{
//Get the current position
navigator.geolocation.getCurrentPosition(function (position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
// do callback
$.ajax(
{
type: "POST",
url: "checklocation.php",
data: "lat=" + latitude + "&lon=" + longitude
}).done(function (msg)
{
alert("Data Saved: " + msg);
});
});
}
else
{
alert("Sorry... your browser does not support the HTML5 GeoLocation API");
}
}
testResults();
干杯。弗兰克