Php 如何在.load jquery函数中传递lat lan的变量
在下面的代码中,我试图在Php 如何在.load jquery函数中传递lat lan的变量,php,jquery,function,variables,Php,Jquery,Function,Variables,在下面的代码中,我试图在.load()中传递变量lat和lon,但无法传递变量 $(document).ready(function() { var x=document.getElementById("demo"); function getLocation() { if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition);
.load()
中传递变量lat和lon,但无法传递变量
$(document).ready(function() {
var x=document.getElementById("demo");
function getLocation() {
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML="Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var lat=position.coords.latitude;
var lng=position.coords.longitude;
$(".content").load("page1.php?lat="+lat+"&lng="+lng);
}
});
如何在
.load()
中传递这两个变量?您所拥有的应该可以工作
$(".content").load("page1.php?lat="+lat+"&lng="+lng);
假设lat和lng实际上含有某种物质
测试以查看它们是否实际包含值
console.log("Lat : "+lat+" Lng:"+lng);
同样在page1.php文件中,您显然必须检索它们
<?php if(isset($_GET)){
$lat = $_GET['lat']; $lng = $_GET['lng'];
}
为了让lat和lng实际返回任何内容,需要将位置传递到showPosition()函数中
navigator.geolocation.getCurrentPosition(showPosition(yourPositiionValue));
虽然我不能帮你,因为我不知道你从哪里得到这个职位
即。。我不知道你会怎么想
但最终我要说的是,因为showPosition()需要一个参数
function showPosition(argument) {
// These will be empty, if you don't provide said argument
var lat=argument.coords.latitude;
var lng=argument.coords.longitude;
$(".content").load("page1.php?lat="+lat+"&lng="+lng);
}
如果没有一个,lat和lng将一直是空的,因此将永远无法工作我得到的答案是我上述问题的解决方案
(function ($) {
$.geolocate = function (options) {
var def = $.Deferred();
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(def.resolve, def.reject, options);
} else {
def.reject();
}
return def.promise();
};
})(jQuery);
$.geolocate().done(function(position){
var lat = position.coords.latitude;
var lng = position.coords.longitude;
//alert("Lat : "+lat+" Lng:"+lng);
$(".content").load("page1json.php?lat="+lat+"&lng="+lng);
});
您是否尝试过
console.log(lat,lng)
以查看您是否首先获取变量?@ntgCleaner请发送完整的代码以执行此操作,我已经这样做了。复制并粘贴“showPosition()”函数末尾的那一行,然后查看浏览器控制台,看看它是否输出了任何内容。我只想知道我上面的代码是正确的,还是我走错了方向。谢谢你的帮助。你问的原始问题。load()是正确的。你如何拥有它,肯定会将它们传递到php页面。因此,是的,你的方向是正确的。但是我要指出的是,除非你通过一个论证,否则lat,lng将是空的。我用你给出的代码尽我所能帮助你。如果没有需要传递给showPosition()的实际位置参数,我就没有什么可以帮助您的了。因为在没有参数的情况下调用showPosition()是lat和lng为空且负载不工作的原因
(function ($) {
$.geolocate = function (options) {
var def = $.Deferred();
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(def.resolve, def.reject, options);
} else {
def.reject();
}
return def.promise();
};
})(jQuery);
$.geolocate().done(function(position){
var lat = position.coords.latitude;
var lng = position.coords.longitude;
//alert("Lat : "+lat+" Lng:"+lng);
$(".content").load("page1json.php?lat="+lat+"&lng="+lng);
});