PHPでコンテキスト検索エンジンを開発しています。そのためには、ユーザーがクエリを入力するときに、彼女の緯度と時間が必要です。私はphpで検索ボックスを開発しています。緯度経度を取得するには、HTML 5 地理位置情報 API を使用しています。stackoverflow の投稿から着想を得て、次の 2 つのファイルを作成しました。
order.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 に到達した後に取得した値を保持するにはどうすればよいですか。
この文脈で、私は他の同様の質問がここで尋ねられ、それらの解決策を適用したのを見てきましたが、どれも機能していないようです. だから助けてください。ありがとうございました。