Php 将Googlemap纬度和经度作为javascript传递到HTML表单

Php 将Googlemap纬度和经度作为javascript传递到HTML表单,php,javascript,html,google-maps-api-3,google-geocoding-api,Php,Javascript,Html,Google Maps Api 3,Google Geocoding Api,大家好,我目前正在使用GoogleMapsAPIv3,我正在尝试获取纬度和经度的变量,并将它们作为html变量放置在隐藏的表单中,然后通过表单将它们传递到php页面。纬度和经度作为跨度打印在我的页面上,但我无法在表单中打印它们 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <html xmlns="http://www.w3.org/1999/xhtml">

大家好,我目前正在使用GoogleMapsAPIv3,我正在尝试获取纬度和经度的变量,并将它们作为html变量放置在隐藏的表单中,然后通过表单将它们传递到php页面。纬度和经度作为跨度打印在我的页面上,但我无法在表单中打印它们

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"       
    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <title>Untitled 1</title>

   <!-- google maps -->
   <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">        </script>

    <!-- jquery -->
   <script type="text/javascript" src="js/jquery.min.js"></script>

   <!-- jquery UI -->
   <script type="text/javascript" src="js/jquery-ui.min.js"></script>

   <!-- our javascript -->
   <script type="text/javascript" src="gmaps.js"></script>

   <link rel="stylesheet" type="text/css" href="style4.css" />


   </head>

   <body>

      <input id='gmaps-input-address' type='text'/>

    <div id='gmaps-error'></div>

    <div id='gmaps-canvas'></div>

      <br/>
      <br/>
    Latitude: <span id='gmaps-output-latitude'></span>
      <br/>
      Longitude: <span id='gmaps-output-longitude'></span>
      <br/>     

    <script type="text/javascript">

    function doSomething()
    {
    var lat = document.getElementById('#gmaps-output-latitude');
    lat_element.value = google_maps_api_variable;
    var lon = document.getElementById('#gmaps-output-longitude');
    lon_element.value = google_maps_api_variable;
    document.getElementById("lat").value=lat;
    document.getElementById("lon").value=lon;
    }
    </script>


   <form action="join.php" method="post" onSubmit="doSomething">

   <input type="hidden" name="lat" id="lat"/>
   <input type="hidden" name="lon" id="lon"/>

   <input type="submit" value="Confirm Address"/>
   </form>
   </body>


   </html>

我对Javascript非常熟悉,非常感谢您的帮助,我已经搜索了其他问题,但我被困在这里。

只需在您已有的代码之后添加此代码即可(在表单作为表单提交buon的点击处理程序或其他内容提交表单之前):


只需在已有代码之后添加此代码(在表单作为表单提交buon的单击处理程序提交之前使用):


gmaps.js是在html文件中填充span的js。这应该是通过一个回调函数实现的,我可能认为它是update\u ui。此函数可能会在以后填充跨距,并且填充隐藏字段的脚本可能已经执行。因此,将填充隐藏字段的代码放在回调函数调用之后,或者可能放在更新ui本身中

因此,编辑您的update_ui函数并添加

$('#lat').val(latLng.lat()); $('#lon').val(latLng.lng()); $('#lat').val(latLng.lat()); $('#lon').val(latLng.lng());
函数体中的这些行结束。

gmaps.js是在html文件中填充span的js。这应该是通过一个回调函数实现的,我可能认为它是update\u ui。此函数可能会在以后填充跨距,并且填充隐藏字段的脚本可能已经执行。因此,将填充隐藏字段的代码放在回调函数调用之后,或者可能放在更新ui本身中

因此,编辑您的update_ui函数并添加

$('#lat').val(latLng.lat()); $('#lon').val(latLng.lng()); $('#lat').val(latLng.lat()); $('#lon').val(latLng.lng());
函数体中的这些行结束。

您不需要HTML表单。您可以通过AJAX调用将它们直接从Javascript传递到PHP。HTML不是一种编程语言,所以它不应该包含变量。您不需要HTML表单。您可以通过AJAX调用将它们直接从Javascript传递到PHP。HTML不是一种编程语言,所以它不应该包含变量。为你的帮助干杯,John,但我仍然有问题。你知道为什么纬度和经度会打印为a,而不是?抱歉,如果这是一个愚蠢的问题,这是我的第一个网站。Thanks@BrianO保持输入标签不使用标签闭合器。输入本身应以/>结尾。jquery在那里被突出显示,设置html,它是标记中的内容。对于输入,您可以像上面一样使用val设置值。此外,每页只能使用一次id。我承认我的代码是一种变通方法,因为它将span标记的内容复制到隐藏输入的值中。感谢John,我通过删除span并将UI_函数更改为$('#lat').val(latLng.lat())使代码正常工作$('#lon').val(latLng.lng());按照你的建议。谢谢你的帮助!!为你的帮助干杯,约翰,但我仍然有问题。你知道为什么纬度和经度会打印为a,而不是?对不起,如果这是一个愚蠢的问题,这是我的第一个网站。Thanks@BrianO保持输入标签不使用标签闭合器。输入本身应以/>结尾。jquery在那里被突出显示,设置html,它是标记中的内容。对于输入,您可以像上面一样使用val设置值。此外,每页只能使用一次id。我承认我的代码是一种变通方法,因为它将span标记的内容复制到隐藏输入的值中。感谢John,我通过删除span并将UI_函数更改为$('#lat').val(latLng.lat())使代码正常工作$('#lon').val(latLng.lng());按照你的建议。谢谢你的帮助!!再次感谢一百万的帮助Sushil,但是你能解释为什么纬度和经度会打印为a,而不是?抱歉,如果这是一个愚蠢的问题,这是我的第一个网站。感谢一百万的帮助Sushil,但是你能解释为什么纬度和经度会打印为a,但是,如果这是一个愚蠢的问题,那就不那么抱歉了。这是我的第一个网站。谢谢 $('#lat').val(latLng.lat()); $('#lon').val(latLng.lng());