我需要在数组中找到一个值,但我不知道如何获取我需要搜索的ID

时间:2013-03-07 09:02:52

标签: javascript jquery ajax

因此,使用谷歌地图我有从我的mysql数据库中存储的信息生成的标记。

当我右键单击标记时,它会发送一个ajax请求并将一些信息加载到屏幕上,以便您可以编辑标记的位置,名称,其他一些内容,它还会设置<input type="hidden" id="inputRoute_Id name="routeid">和它使用隐藏元素来存储数据库的自动递增ID

中的标记的ID

因此,当我发送更新命令时,它确切地知道要编辑的标记WHERE route_id = $routeid

但现在我需要知道如何删除它。现在我正在使用该信息尝试客户端通过一些函数从地图中删除标记。

我使用php请求来存储数据库中的信息:

  <?php while($stmt -> fetch()) { ?>
  var long = "<?php echo $gLongitude ?>";
  var lati = "<?php echo $gLatitude; ?>";
  var title = "<?php echo $gTitle; ?>";
  var id = "<?php echo $gRoute_Id; ?>";
  setMarker(lati, long, title, id);
  <? } $stmt -> close(); $mysqli -> close();?>

然后将标记设置为:

function setMarker(lat,lon, markerTitle, id) {
  var latLonMarker = new google.maps.LatLng(lat,lon);
  marker = new google.maps.Marker({
    position: latLonMarker,
    map: map,
    draggable: true,
    title: markerTitle
  });
  google.maps.event.addListener(marker, 'drag', function() {
    $('#inputLatitude').val(this.getPosition().lat());
    $('#inputLongitude').val(this.getPosition().lng());
  });
  google.maps.event.addListener(marker, 'rightclick', function() {
    var gId = id;
    fetchMarker(id);
  });
  arrMarkers.push({ marker: marker, id: id});
}

因此它发送删除ajax请求,并在成功时发送:

 $.ajax({
        type: 'POST',
        url: 'php/addmarker.php',
        data: dataString,
        success: function(data) {
          $('#alertt').text(data);
          $('#alertt').fadeIn().delay(2000).fadeOut('slow');
          deleteMarker($('#inputRoute_Id').val());

deleteMarker函数然后执行此操作:

function deleteMarker(id) {
  for (var i = 0; i < arrMarkers.length; i += 1) {
    if (arrMarkers[i].id === id) {
      arrMarkers[i].setMap(null);
    }
  }
}

但是因为setMarker使用数据库中出现的id,我如何在数组中找到它并将其删除,因为我拥有标记ID的唯一方法就是当我右键单击并更新隐藏元素时。我需要它在成功删除时从客户端删除,这样您就不必刷新页面以查看它已被删除。我希望我很清楚,如果没有抱歉,并提前感谢。

0 个答案:

没有答案