javascript - 当谷歌地图标记移动时更新mysql数据库

标签 javascript php mysql ajax

嗯,我有一个谷歌地图,其中所有纬度和经度都来自数据库,它用标记显示每个位置。标记是可移动的。

现在,当我移动每个标记时,我想更新纬度和经度的数据库。是否可以使用 php、javascript 或 Ajax。你能给我一个解决方案或建议吗?谢谢。

Javascript代码:

<script type="text/javascript" src="jquery-1.4.4.min.js"></script>        
<script src="http://maps.googleapis.com/maps/api/js?sensor=false" 
type="text/javascript"></script>
<script type="text/javascript" src="gmap3.js"></script>    

<script type="text/javascript">
  $(function(){
    $('#map').gmap3({
      map:{
        options:{
          center:[23.709920999999998,90.40714299999999],
          zoom: 15
        }
      },
      marker:{
        values:[            
        <?php
        $sql = mysql_query("select * from parkings where userid != '0'");
        while($res = mysql_fetch_array($sql)){
                            $id = $res['locId'];
            $lat = $res['latitude'];
            $long = $res['longitude'];              
            ?>
            {address:"<?php echo $lat;?>,<?php echo $long;?>"},
            <?php
            }
        ?>                               
        ],
        options:{
          draggable: true
        },
        events: {
          click: function(marker, event, context){
            markerSelected(context.id);
          }
        }
      }
    });

    $("#bcolor").click(function(){
      var marker = $('#map').gmap3({get: $("#markerId .value").text() });
      marker.setIcon(marker.getIcon() ? "" : "http://maps.google.com/mapfiles
/marker_green.png");
    });

    $("#bremove").click(function(){
      $('#map').gmap3({clear: $("#markerId .value").text() });
      $("#data").hide();
      $("#title").show();
    });

  });

  function markerSelected(id){
    var marker = $('#map').gmap3({get:id});

    $("#markerId .value").text(id);
    $("#latitude .value").text(marker.getPosition().lat());
    $("#longitude .value").text(marker.getPosition().lng());

    $("#data").show();
    $("#title").hide();
  }

</script>

Html 正文部分代码

<div id="map" class="gmap3"></div>

当我单击每个标记时,它会显示以下部分的纬度和经度:

<div id="latitude">
        <span class="label">Latitude : </span>
        <span class="value"></span>
      </div>
      <div id="longitude">
        <span class="label">Longitude : </span>
        <span class="value"></span>
      </div>

最佳答案

当您移动标记时,您可以使用 jQuery 获取新的纬度和经度值。

只需将 ID 添加到包含值的标签即可:

<div id="latitude">
    <span class="label" id="gmap_latitude">Latitude : </span>
    <span class="value"></span>
</div>
<div id="longitude">
    <span class="label" id="gmap_longitude">Longitude : </span>
    <span class="value"></span>
</div>

因此您可以轻松地使用 jQuery 选择它们并获取它们的值。

现在,要更新数据库,我建议创建一个更新数据库的 PHP 脚本,并在每次更新标记时使用带有 jQ​​uery 加载函数 ( http://api.jquery.com/jQuery.post/ ‎) 的 AJAX 调用。您可以使用 jQuery 事件处理程序来跟踪这一点。

关于javascript - 当谷歌地图标记移动时更新mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19653313/

相关文章:

javascript - 循环并不总是被调用,但检查更改事件的函数总是在循环内调用

javascript - 离开页面时弹出消息

php - 动态加载 div 上的 Jquery

php - 过滤表 WHERE 1 列 = 来自另一个表的列

javascript - 网络驱动程序 : How to know current frame activeness?

javascript - var 语句应该是 JavaScript 函数中的第一条语句吗?

php - 循环内的多个文件验证

php - 如何从数组末尾删除第n个元素

php - 如何在一个 php 文件中定义 mysqli 连接,然后在另一个文件中使用它?

php - 将数组内容存入数据库