还有另外四个 if 语句,它们对其他类别执行相同的操作。
<?php
if (isset($_POST['one'])) {
$query = "SELECT * FROM beerstable WHERE category LIKE \"%Lager%\"";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
while ($row = mysql_fetch_assoc($result)) {
$lat = $row['lat'];
$lng = $row['lng'];
$markername = $row['name'];
$link = $row['link'];
$photo = $row['photo'];
?>
var infowindow = new google.maps.InfoWindow({
content: '<h1><?php echo $markername ?></h1><br><img src="<?php echo $photo ?>" height="30" width="50"><br><a href="<?php echo $link ?>"><?php echo $link ?></a>'
});
icon = "yellow";
icon = "http://maps.google.com/mapfiles/ms/icons/" + icon + ".png";
var marker = new google.maps.Marker({
title: '<?php echo $markername ?>',
animation: google.maps.Animation.DROP,
//animation: google.maps.Animation.BOUNCE,
icon: new google.maps.MarkerImage(icon),
position: new google.maps.LatLng( <? php echo $lat ?> , <? php echo $lng ?> )
});
marker.setMap(map);
google.maps.event.addListener(marker, 'click', function () {
infowindow.open(map, marker);
});
<?php
}
}
?>
它显示标记,但是当我单击标记时,它会显示最后创建的标记的信息窗口。
最佳答案
听到:
var infowindow = new google.maps.InfoWindow({
content: '<h1><?php echo $markername ?></h1><br><img src="<?php echo $photo ?>" height="30" width="50"><br><a href="<?php echo $link ?>"><?php echo $link ?></a>'
});
创建 1 个数组 informwindow 。
修改为
$i ++;
infowindow[<?php echo $i; ?>] = new google.maps.InfoWindow({
content: '<h1><?php echo $markername ?></h1><br><img src="<?php echo $photo ?>" height="30" width="50"><br><a href="<?php echo $link ?>"><?php echo $link ?></a>'
});
和
marker[<?php echo $i; ?>] = new google.maps.Marker({...});
google.maps.event.addListener(marker[$i], 'click', function() {
infowindow[<?php echo $i; ?>].open(map,this);
});
关于javascript - Google map 上的多个标记和信息窗口(使用 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915353/