我試圖用我的wp-admin插件從Google Maps Api運行Geocode。我有我自己的帖子類型,其中輸入地點的地址,和jQuery代碼觀看點擊div。 所以這是我的代碼:
插件代碼[PHP]:如何將.post響應中的變量值傳遞給PHP
add_action('wp_ajax_generate_geocode', array($this, 'generate_geocode'));
[...]
//here is my test function that is waiting for response and doing something.
public function generate_geocode() {
print_r($_POST);
die();
}
AJAX代碼[JS與jQuery]:
jQuery(document).ready(function() {
var lat = '';
var lng = '';
jQuery('#generate-geocode').on('click', function() {
var address = jQuery('#address').val();
// alert(address);
var geocoder = new google.maps.Geocoder();
geocoder.geocode({address: address}, function(results, status) {
//alert(status);
if (status == google.maps.GeocoderStatus.OK) {
lat = results[0].geometry.location.lat();
lng = results[0].geometry.location.lng();
alert(lat + ' ' + lng);
}
});
data = {
action: 'generate_geocode',
lat: lat,
lng: lng
};
jQuery.post(ajaxurl, data, function(response) {
alert(response);
});
});
});
我的問題是,我不知道如何將lat和lng變量或它的值(result [0] .geometry.location.lat()的值和results [0] .geometry.location.lng())的值傳遞給我的PHP代碼。因此,現在我有我的警報:
Array
(
[action] => generate_geocode
[lat] =>
[lng] =>
)
你能告訴我如何通過該值?也許有更好的辦法? :)
地理編碼器是異步的。 – adeneo
謝謝,我忘了:) – Kulfon