dotdx80642
2012-12-31 16:37
浏览 49
已采纳

如何使用HTML表单将JavaScript值传递到另一个PHP页面?

I have spent more than 2 months trying to solve this coding problem. First of all I know JavaScript runs on the client side and PHP runs on server.

I have two PHP pages (index23.php and index24.php), both use HTML/PHP and JS.

I'm using the 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>

I can see the geocode values on my current PHP page (index23.php). Then I click an HTML form button and the browser goes to another page (index24.php).

How can I pass the JavaScript values on the first PHP page to the second PHP page using the submit button on the form?

This is my form:

<form id="searchbox" action="index24.php" method="get">
<input name="q" type="text" placeholder="Type here"/>
<input id="submit" type="submit" value="Search"></form>
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • duankui3838 2012-12-31 16:53
    已采纳

    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'];
    
    已采纳该答案
    打赏 评论
  • doubeng1278 2012-12-31 16:45

    what you need to do is make a input type hidden and send value through it

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

    also html is not server side .. only php is. i hope image below explain

    enter image description here

    image source

    打赏 评论
  • douzhaocheng4533 2012-12-31 16:49

    You can add the values to the form dynamically when you get the coordinates.

    <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>
    
    打赏 评论

相关推荐 更多相似问题