MySQLデータベースからのデータ(latおよびlng)を使用してGoogleマップに複数のマーカーを表示しようとしています。マップ上でこれらのマーカーを返すためにforeachループを実行すると、最後の行だけが返されます。何が問題なのでしょうか?複数のマーカーをMySQLデータベースから追加する
<?php
require_once "db/db_handle.php";
$select = "SELECT * FROM map";
$data = $db->query($select);
?>
<!DOCTYPE html>
<html>
<head>
<style>
#map {
height: 400px;
width: 100%;
}
</style>
</head>
<body>
<h3>My Google Maps Demo</h3>
<div id="map"></div>
<?php foreach ($data as $key) {
echo $key['lat'];
?>
<script>
function initMap() {
var uluru = {lat: <?php echo $key['lat']; ?>, lng: <?php echo $key['lng']; ?>};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: uluru
});
var marker = new google.maps.Marker({
position: uluru,
map: map
});
var contentString = '<?php echo $key['address']; ?>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: uluru,
map: map,
title: 'Uluru (Address)'
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
</script>
<?php } ?>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=myKey&callback=initMap">
</script>
</body>
</html>
あなたはスクリプト全体を含めているループ内すなわち毎回ループが実行されたマップの新しいインスタンスが生成されますどのようにループ –
の内側ループとちょうどマーカー外に地図を動かします私はそれをしますか? – radioactive