因此,使用谷歌地图我有从我的mysql数据库中存储的信息生成的标记。
当我右键单击标记时,它会发送一个ajax请求并将一些信息加载到屏幕上,以便您可以编辑标记的位置,名称,其他一些内容,它还会设置<input type="hidden" id="inputRoute_Id name="routeid">
和它使用隐藏元素来存储数据库的自动递增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的唯一方法就是当我右键单击并更新隐藏元素时。我需要它在成功删除时从客户端删除,这样您就不必刷新页面以查看它已被删除。我希望我很清楚,如果没有抱歉,并提前感谢。