我想使用 javascript 获取经度和纬度,而不是将其与以前的位置进行比较。当您从另一台计算机登录时,像 Facebook 一样,但要简化得多。为了实现这一点,我创建了 2 个隐藏字段,当用户提交表单时,这些值将被发送到服务器。
<body>
<p id="log">Login to continue:
<form action="welcome.php" method="post">
Username: <input type="text" name="user" required >
Password: <input type="password" required>
<input type="hidden" name= "longitude" id="longitude">
<input type= "hidden" name ="latitude" id="latitude">
<input type="submit" name="submit" onclick="getLocation()">
</p>
<script>
var x=document.getElementById("log");
function getLocation()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementByID("longitude").value = longitude;
document.getElementByID("latitude").value = latitude;
}
</script>
但是在welcome.php中的代码:
$latitude=$_POST["latitude"];
$longtude=$_POST["longitude"];
返回: 注意:未定义索引:第 8 行 C:\xampp\htdocs\welcome.php 中的纬度
注意:未定义索引:第 9 行 C:\xampp\htdocs\welcome.php 中的经度
有没有更好的方法来做到这一点,以及如何解决这个问题?