如何在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;
}
答案 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调用将无效。