PHP会话变量等于Javascript值

PHP会话变量等于Javascript值,javascript,php,geolocation,Javascript,Php,Geolocation,如何将PHP与Javascript结合使用?我试图使PHP会话变量等于JS中的地理位置值。这可能吗 PHP $_SESSION['latitude'] = ? $_SESSION['longitude'] = ? Javascript中的地理定位函数: function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else{x.inn

如何将PHP与Javascript结合使用?我试图使PHP会话变量等于JS中的地理位置值。这可能吗

PHP

$_SESSION['latitude'] = ?
$_SESSION['longitude'] = ?
Javascript中的地理定位函数:

function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{ 
document.getElementById('showlat').innerHTML = position.coords.latitude; 
document.getElementById('showlong').innerHTML = position.coords.longitude;
}

您可以使用JavaScript向服务器上的脚本发出异步请求,从而设置PHP会话变量。除此之外,我认为没有其他方法。

在JavaScript中,您可以将数据从JavaScript“发布”到PHP。一种更简单的方法是使用JQuery调用该方法,该方法比老式的HTTPXMLRequest稍好一些。 创建一个JavaScript变量来存储地理数据,并通过ajax将其作为JSON数据发送。PHP将通过POST或GET接收此数据,并且可以使用与从HTML接收表单数据相同的方式来使用它

JS Ex)

PHP(Ex)



确保您的PHP文件具有session_start();否则,ajax调用将无法工作。

您不能从JavaScript在PHP中设置值。我认为您需要了解在哪里处理什么代码。PHP在服务器上处理,然后交付页面,浏览器可以在其中处理javascript,因此您可以看到,如果不刷新页面或移动到另一个页面,它就无法返回到另一个页面。好像类似的内容还没有被问过一千次……感谢@13ruce137的解释。我现在更明白了。
var lat = 'what ever the latitude is';
var longi = 'what ever the longitude is';

$.ajax(
{
     url:'what ever your php page is',
     type:'post',
     data:{latitude:lat,longitude:longi},
     success:function(data)
     {
          console.log(data+' was sent successfully');
     },
     error:function()
     {
          console.log('data was NOT sent');
     }
});
<?php
session_start();
$_SESSION['longitude']=$_POST['longitude'];
$_SESSION['latitude']=$_POST['latitude'];

?>