-1
我有一個jQuery的函數,通過php文件,從數據庫中檢索經度和緯度。在同一個js文件中,我有一個將標記放置在Google地圖上的函數。我想使用第一個函數返回的json(lat和long),在Google maps中添加標記函數。目前在我的代碼下面,..JSON數據只是顯示在一個空的div。有什麼方法可以在函數之間訪問json數據,或者我可以以某種方式組合這兩個函數嗎?如何將json對象從一個函數傳遞給另一個函數?
// Google Map
var map;
// markers for map
var markers = [];
// initialize the map
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 37.09024, lng: -95.712891},
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 4
});
}
// add markers
function addMarker(data) {
// get lat and long from data(json object)
var myLatlng = new google.maps.LatLng(parseFloat(data.latitude), parseFloat(data.longitude));
// custom marker image
//var image = "../img/infoblue.png";
// new marker
var marker = new MarkerWithLabel({
position: myLatlng,
map: map,
labelClass: "label",
labelContent: data.name,
labelAnchor: new google.maps.Point(20,0),
});
// add marker to array
markers.push(marker);
}
// this function gets json and then displays in a div on an html page
$(document).ready(function(){
$('.airport_form').submit(function(){
// show that something is loading
$('#response').html("<b>Loading response...</b>");
$.ajax({
type: "post",
dataType: "json",
url: "response.php",
data: $(this).serialize()
})
.done(function(data){
// show the response
$('#response').html("Name -> " + data.name + "<br>" + " Iata code -> " + data.iata + "<br>" + " Lat. -> " + data.latitude + "<br>" + " Longitude -> " + data.longitude);
})
.fail(function() {
// just in case posting the form fails
alert("Posting failed.");
});
// to prevent refreshing the whole page page
return false;
});
});
一旦對象已經從有線格式JSON解析,它不是一個「JSON對象」 - 這是一個普通的舊JavaScript對象。 – Pointy