Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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代码位于index.php中时,如何从javascript到php变量获取值?_Javascript_Php_Wordpress - Fatal编程技术网

当脚本和php代码位于index.php中时,如何从javascript到php变量获取值?

当脚本和php代码位于index.php中时,如何从javascript到php变量获取值?,javascript,php,wordpress,Javascript,Php,Wordpress,我在index.php中的代码是 <script type="text/javascript"> window.onload=function(){ function callback(position) { latitude = position.coords.latitude; longitude = position.coords.longitude; alert(latitude)

我在index.php中的代码是

<script type="text/javascript">
    window.onload=function(){

        function callback(position) {
           latitude = position.coords.latitude;
           longitude = position.coords.longitude;
             alert(latitude);
             alert(longitude);
        }

        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(callback);
        }

    }
</script>

window.onload=function(){
函数回调(位置){
纬度=位置坐标纬度;
经度=position.coords.longitude;
警报(纬度);
警报(经度);
}
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(回调);
}
}
我需要在index.php中显示纬度和经度的值

<?php echo $lat; ?>, 
<?php echo $long; ?> how can i get value here?
,
我如何在这里获得价值?

首先,Javascript是基于客户端的语言,除非刷新页面或使用AJAX(异步Javascript和Xml),否则无法将其发送到服务器

AJAX仅使用以下组合:

  • 浏览器内置的XMLHttpRequest对象(用于从web服务器请求数据)

  • JavaScript和HTML DOM(用于显示或使用数据)*

您可以创建一个控制器,向其中发送数据,如下所示:

function sendData(lat, lon) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      alert("Sent successfuly");
    }
  };
  xhttp.open("GET", "getGeolocation.php?latitude=" + lat + "&longitude=" + lon , true);
  xhttp.send();
}
这样,您将通过函数传递纬度和经度,然后将其值发送到getGeolocation.php中的控制器

您可以像这样获取数据

$lat = $_GET['lat'];
$lon = $_GET['lon'];

异步HTTP请求(AJAX)。也许是Websocket。无法传递给客户端(正如您所期望的)。您不能直接将javascript变量分配给php变量,请使用cookie来实现这一点抱歉,我不熟悉这一点。我真的很困惑,还没有找到解决办法。我在加载single-service.php时需要这个值。你能给我完整的代码吗。