我有一个网站,用户可以在其中从下拉菜单中选择一个值。单击按钮后,带有 ajax 的请求被发送到服务器,结果我得到了一些文本(我使用 ajax,因为我不希望页面刷新)。当我想使用 googlemaps api 来获取(连同文本)带有一些标记的地图时,就会出现问题。我正在尝试在 $.ajax 的成功函数中添加相应的代码来创建标记,但它似乎不起作用。其实我不知道这是否是正确的方法。
我将在这里发布我在成功函数中添加的部分代码:
$.ajax({
type:'POST',
url:'activities_code.php',
data: {datastr:datastr, datastr1:datastr1},
success:function(response){
$("#msg").html(response);
map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(0, 0),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
},
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.SMALL
}
});
<?php
$category = $_POST['category'];
$query = mysql_query("SELECT activities,city,latt,lonn FROM activities where activities='$category'");
while ($row = mysql_fetch_array($query)){
$name=$row['activities'];
$lat=$row['latt'];
$lon=$row['lonn'];
$desc=$row['city'];
echo ("addMarker($lat, $lon,'<b>$activities</b><br/>$city');\n");
}
?>
center = bounds.getCenter();
map.fitBounds(bounds);
}
});
});
});
在 php 部分我回显
echo ("addMarker($lat, $lon,'<b>$activities</b><br/>$city');\n");
addMarker 是这个函数的位置:
function addMarker(lat, lng, info) {
var pt = new google.maps.LatLng(lat, lng);
bounds.extend(pt);
var marker = new google.maps.Marker({
position: pt,
icon: icon,
map: map
});
var popup = new google.maps.InfoWindow({
content: info,
maxWidth: 300
});
google.maps.event.addListener(marker, "click", function() {
if (currentPopup != null) {
currentPopup.close();
currentPopup = null;
}
popup.open(map, marker);
currentPopup = popup;
});
google.maps.event.addListener(popup, "closeclick", function() {
map.panTo(center);
currentPopup = null;
});
}