Javascript 双击更新传单地图上的位置标记

Javascript 双击更新传单地图上的位置标记,javascript,mysql,position,leaflet,Javascript,Mysql,Position,Leaflet,我将此代码添加到JSON文件生成的传单地图标记中 jQuery().ready(function (){ $.getJSON( '/EUREKA/json/map_container/json_map_container.php', function(data){ for ( var i=0; i < data.length; ++i ) { k=i; var myIcon = L.icon(

我将此代码添加到JSON文件生成的传单地图标记中

jQuery().ready(function (){ 
$.getJSON(
    '/EUREKA/json/map_container/json_map_container.php',
    function(data){
        for ( var i=0; i < data.length; ++i )
        {
            k=i;
            var myIcon = L.icon({
            iconUrl: 'maps/images/' + data[i].type + '.png',
            iconRetinaUrl: 'maps/images/' + data[i].type + '.png',
            iconSize: [42, 55],
            iconAnchor: [9, 21],
            popupAnchor: [0, -14]
            });
            markerArray[i] = L.marker( [data[i].latitude, data[i].longitude], {id: data[i].id, icon: myIcon, draggable:'true'} )
            .bindPopup( '<div>' + '<b>PDL di riferimento:</b> ' + data[i].codice + '<br/>'
                + '<b>Riferimento appaltatore:</b> '
                + data[i].companyId + '<br/>'
                + '<b>Tipo contenitore:</b> '
                + data[i].type + '<br/>'
                + '<b>Numero RDP:</b> '
                + data[i].rdpNumber + '<br/>'
                + '<b>Preposto di riferimento:</b> '
                + data[i].preposto + '<br/>'
                + '<b>Descrizione del rifiuto:</b> '
                + data[i].description
                + '</div>',
                {direction: 'left'} )
            .addTo( map );
            //markerArray[i] = marker1;
            markerArray[i].on('dblclick', function(e){                  
                console.log("ID Marker Array: " + markerArray[k].options.id);
                var latitudeMarker = markerArray[k].getLatLng().lat;
                var longitudeMarker = markerArray[k].getLatLng().lng;
                $.getJSON(
                '/EUREKA/json/map_container/json_update_position.php?&lat=' + latitudeMarker + '&lng=' + longitudeMarker + '&id=' + markerArray[k].options.id,
                function(data){
                    console.log("Posizione aggiornata")
                });
            });
        }
});
jQuery().ready(函数(){
$.getJSON(
“/EUREKA/json/map_container/json_map_container.php”,
功能(数据){
对于(变量i=0;i
+“阿帕尔塔托雷·里弗里门托:”
+数据[i]。公司ID+“
” +"提波康特尼托雷": +数据[i]。类型+“
” +“数字RDP:” +数据[i].rdpNumber+'
+“Preposto di riferimento:” +数据[i].preposto+'
' +“里菲乌托描述:” +资料[i].说明 + '', {方向:'左'}) .addTo(地图); //markerArray[i]=marker1; markerArray[i].on('dblclick',函数(e){ log(“ID标记数组:+markerArray[k].options.ID”); var-latitudeMarker=markerary[k].getLatLng().lat; var longitudeMarker=markerary[k].getLatLng().lng; $.getJSON( '/EUREKA/json/map_container/json_update_position.php?&lat='+latudemarker+'&lng='+longitudeMarker+'&id='+markeray[k].options.id, 功能(数据){ console.log(“Posizione aggiornata”) }); }); } });
JSON“JSON_map_container.php”文件从sql查询返回日期。我想在双击事件中将标记拖动到新位置时更新标记在地图中的位置,我想使用标记的新位置和id调用JSON“JSON_update_position.php”,JSON在我的数据库上执行更新查询,但双击标记时,我是否生成了最后一个id。有人能帮我吗?

阅读,这描述了您的问题:基本上,
k
将始终是在回调中读取时设置的最后一个值

您可以应用此答案中解释的内容,或者通过
e.target
,获取对传递给回调的事件对象中的标记的引用:

markerArray[i].on('dblclick', function(e){  
    var marker = e.target;

    console.log("ID Marker Array: " + marker.options.id);
    var latitudeMarker = marker.getLatLng().lat;
    var longitudeMarker = marker.getLatLng().lng;
    $.getJSON(
    '/EUREKA/json/map_container/json_update_position.php?&lat=' + latitudeMarker + '&lng=' + longitudeMarker + '&id=' + marker.options.id,
    function(data){
        console.log("Posizione aggiornata")
    });
});