我正在用 php 开发一个上下文搜索引擎。为此,当用户键入查询时,我需要她的 latlong 和 time。我正在开发 php 中的搜索框。为了获得 latlong 我正在使用 HTML 5 geolocation api。我从 stackoverflow 中的帖子中汲取灵感,编写了以下两个文件。
订单.php
<html>
<head>
<script type="text/javascript">
function getLocation(){
var x = document.getElementById("demo");
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML="Geolocation is not supported by this browser.";
}
}
function showPosition(position){
var latitude=document.getElementById("latitude"),
longitude=document.getElementById("longitude");
latitude.value = position.coords.latitude;
longitude.value = position.coords.longitude;
}
</script>
</head>
<body onload="getLocation()">
<p id="demo"></p>
<form id="searchbox" action="process.php" method="get">
<input name="q" type="text" placeholder="Type here">
<input name="latitude" id="latitude" type="hidden">
<input name="longitude" id="longitude" type="hidden">
<input id="submit" type="submit" value="Search">
</form>
</body></html>
另一个文件是 process.php
<html>
<body>
<form id="searchbox" action="process.php" method="post">
<input name="q" type="text" placeholder="Type here">
<input name="latitude" id="latitude" type="hidden" value="<?php $latitude=$_POST['latitude']; echo $latitude; ?>">
<input name="longitude" id="longitude" type="hidden" value="<?php $longitude=$_POST['longitude'];echo $longitude; ?>">
<input id="submit" type="submit" value="Search">
</form>
<?php $quantity=$_POST['quantity'];
$date = date('Y-m-d H:i:s');
$arr=explode(" ",$date);
$latitude=$_GET['latitude'];
$longitude=$_GET['longitude'];
echo "Latitude=". $latitude."Longitude=". $longitude." Time=".$arr[1]."<br>";
?>
</body>
</html>
问题是每当我从 process.php 再次提交表单时,纬度和经度值都会被重置。那么如何保留登陆 process.php 后获得的它们的值,以便即使我多次从 process.php 提交表单,它们也不会被重置。
在这种情况下,我在这里看到了其他类似的问题并应用了他们的解决方案,但它们似乎都没有奏效。所以请帮忙。谢谢你。