1

ユーザーがドロップダウン メニューから値を選択できる Web サイトがあります。ボタンをクリックすると、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