0

Эй Я этот пример кода:Бакалея Crud долготу магазин, торгующий товарами первой необходимости в базу данных

<html> 
<body onLoad="initialize()"> 

    <div id="map_canvas" style="width:50%; height:50%"></div> 

    <div id="latlong"> 
    <p>Latitude: <input size="20" type="text" id="latbox" name="lat" ></p> 
<p>Longitude: <input size="20" type="text" id="lngbox" name="lng" ></p> 
</div> 

</body> 
</html> 

<cfoutput> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=#YOUR-GOOGLE-API-KEY#&sensor=false"></script> 
</cfoutput> 

<script type="text/javascript"> 
//<![CDATA[ 

// global "map" variable 
var map = null; 
var marker = null; 

// popup window for pin, if in use 
var infowindow = new google.maps.InfoWindow({ 
    size: new google.maps.Size(150,50) 
    }); 

// A function to create the marker and set up the event window function 
function createMarker(latlng, name, html) { 

var contentString = html; 

var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    zIndex: Math.round(latlng.lat()*-100000)<<5 
    }); 

google.maps.event.addListener(marker, 'click', function() { 
    infowindow.setContent(contentString); 
    infowindow.open(map,marker); 
    }); 

google.maps.event.trigger(marker, 'click');  
return marker; 

} 

function initialize() { 

// the location of the initial pin 
var myLatlng = new google.maps.LatLng(33.926315,-118.312805); 

// create the map 
var myOptions = { 
    zoom: 19, 
    center: myLatlng, 
    mapTypeControl: true, 
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, 
    navigationControl: true, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
} 

map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

// establish the initial marker/pin 
var image = '/images/googlepins/pin2.png'; 
marker = new google.maps.Marker({ 
    position: myLatlng, 
    map: map, 
    icon: image, 
    title:"Property Location" 
}); 

// establish the initial div form fields 
formlat = document.getElementById("latbox").value = myLatlng.lat(); 
formlng = document.getElementById("lngbox").value = myLatlng.lng(); 

// close popup window 
google.maps.event.addListener(map, 'click', function() { 
    infowindow.close(); 
    }); 

// removing old markers/pins 
google.maps.event.addListener(map, 'click', function(event) { 
    //call function to create marker 
    if (marker) { 
     marker.setMap(null); 
     marker = null; 
    } 

    // Information for popup window if you so chose to have one 
    /* 
    marker = createMarker(event.latLng, "name", "<b>Location</b><br>"+event.latLng); 
    */ 

    var image = '/images/googlepins/pin2.png'; 
    var myLatLng = event.latLng ; 
    /* 
    var marker = new google.maps.Marker({ 
     by removing the 'var' subsquent pin placement removes the old pin icon 
    */ 
    marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     icon: image, 
     title:"Property Location" 
    }); 

    // populate the form fields with lat & lng 
    formlat = document.getElementById("latbox").value = event.latLng.lat(); 
    formlng = document.getElementById("lngbox").value = event.latLng.lng(); 

}); 

} 
//]]> 

Что я хочу сделать, это показать карты широты и долготы поля в продуктовом CRUD, и автоматически заполнить и поля, когда я нажимаю на карту, как показано выше html, а затем сохраняю значения в моей базе данных. Как это сделать?

Я пробовал скрытое поле функции callback_field, но всегда значения zer0.

Любая помощь будет оценена по достоинству. Спасибо.

ответ

0

Я не знаю, как вставить в базу данных продуктового CRUD, но в основном идея заключается в том, чтобы добавить

google.maps.event.addListener(map, "click", function (e) { 
    var latLng = e.latLng; 
    //parse latLng according to how you are going to store into your database 
}); 

на карту инициализировать функцию так, каждый раз, когда пользователь нажимает на карте, она будет иметь LatLng в var latLng, и вы проанализируете его, чтобы вставить в CRUD. Вышеуказанный метод работает так, как я его протестировал с помощью простой функции оповещения: simple demo