ユーザーがドロップダウン メニューから値を選択できる 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;
});
}