Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在.load jquery函数中传递lat lan的变量_Php_Jquery_Function_Variables - Fatal编程技术网

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);
 });