PHP Session变量等于Javascript值

时间:2014-02-20 15:48:29

标签: javascript php geolocation

如何在Javascript中使用PHP?我试图使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;
}

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

JS Ex)

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 Ex)

<?php
session_start();
$_SESSION['longitude']=$_POST['longitude'];
$_SESSION['latitude']=$_POST['latitude'];

?>

答案 2 :(得分:0)

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