3

このコーディングの問題を解決するために 2 か月以上費やしました。まず第一に、JavaScript はクライアント側で実行され、PHP はサーバーで実行されることを知っています。

2 つの PHP ページ (index23.php と index24.php) があり、どちらも HTML/PHP と JS を使用しています。

HTML5 geolocation API を使用しています。

<body onload="getLocation()">

<p id="demo"></p>

<script>
var x = document.getElementById("demo");

function getLocation()
{
    if (navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(showPosition);
    }
    else
    {
        x.innerHTML="Geolocation is not supported by this browser.";
    }
}

function showPosition(position)
{
    x.innerHTML= "+" + position.coords.latitude + "+" + position.coords.longitude;  
}
</script>

現在の PHP ページ (index23.php) でジオコード値を確認できます。次に、HTML フォーム ボタンをクリックすると、ブラウザーは別のページ (index24.php) に移動します。

フォームの送信ボタンを使用して、最初の PHP ページの JavaScript 値を 2 番目の PHP ページに渡すにはどうすればよいですか?

これは私のフォームです:

<form id="searchbox" action="index24.php" method="get">
<input name="q" type="text" placeholder="Type here"/>
<input id="submit" type="submit" value="Search"></form>
4

3 に答える 3

6

あなたがする必要があるのは、入力タイプを隠して、それを通して値を送ることです

<input name="bla"  type="hidden" value="blabla"> 

また、html はサーバー側ではなく、php のみです。下の画像が説明してくれることを願っています

ここに画像の説明を入力

画像ソース

于 2012-12-31T16:45:50.863 に答える
1

index23.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 x = document.getElementById("demo"),latitude=document.getElementById("latitude"),longitude=document.getElementById("longitude");
    x.innerHTML="+" + position.coords.latitude + "+" + position.coords.longitude;
    latitude.value = position.coords.latitude;
    longitude.value = position.coords.longitude;
}

</script>

</head>
<body onload="getLocation()">

    <p id="demo"></p>
    <form id="searchbox" action="index24.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>

index24.php

$latitude = $_GET['latitude'];
$longitude = $_GET['longitude'];
于 2012-12-31T16:53:03.037 に答える
0

座標を取得すると、値を動的にフォームに追加できます。

<form id="searchbox" action="index24.php" method="get">
<input name="q" type="text" placeholder="Type here"/>
<input id="submit" type="submit" value="Search">
<input name="latitude" type="hidden" id="latitude" value="" />
<input name="longitude" type="hidden" id="longitude" value="" />
</form>
<script>
var x=document.getElementById("demo");
function getLocation()
{
  if (navigator.geolocation)
  {
    navigator.geolocation.getCurrentPosition(showPosition);
  }
  else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
  document.getElementById('latitude').value = position.coords.latitude;
  document.getElementById('longitude').value = position.coords.longitude;
  x.innerHTML="+" + position.coords.latitude + "+" + position.coords.longitude;    
}
</script>
于 2012-12-31T16:49:29.850 に答える