1

嗨,我目前正在使用 GoogleMaps API v3,我正在尝试获取纬度和经度的变量,并将它们作为 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>

在 Googlemaps API 中有一个 javascript 函数,它保存纬度和经度,如下所示:

function update_ui( address, latLng ) {
 $('#gmaps-input-address').autocomplete("close");
 $('#gmaps-input-address').val(address);
 $('#gmaps-output-latitude').html(latLng.lat());
 $('#gmaps-output-longitude').html(latLng.lng());
 }

我对 Javascript 非常熟悉,非常感谢任何帮助,我已经搜索了其他问题以了解我目前的情况,但我被困在这里。

4

2 回答 2

1

只需在您已经拥有的代码之后添加它(在表单提交之前作为表单提交的点击处理程序或其他东西):

$('#lat').val($('#gmaps-output-latitude').html());
$('#lon').val($('#gmaps-output-longitude').html());
于 2012-08-22T15:20:54.703 回答
0

gmaps.js 是您的 js,它在您的 html 文件中填充 span。这应该通过我可能认为是 update_ui 的回调函数发生。此函数可能会在之后填充跨度,并且您用于填充隐藏字段的脚本可能已经执行。因此,将用于填充隐藏字段的代码放在回调函数调用之后,或者可能位于 update_ui 本身中。

所以编辑你的 update_ui 函数并添加

$('#lat').val(latLng.lat());
$('#lon').val(latLng.lng());

这些行在函数体中结束。

于 2012-08-22T15:22:22.220 回答