1

我有一个网站,用户可以在其中从下拉菜单中选择一个值。单击按钮后,带有 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;
 });
 }
4

0 回答 0