Javascript 谷歌地图。以高效的方式使用PHP变量创建大量infoWindow
我有很多联系方式 es:Javascript 谷歌地图。以高效的方式使用PHP变量创建大量infoWindow,javascript,php,google-maps,Javascript,Php,Google Maps,我有很多联系方式 es: 我想用Javascript传递这些变量,并以一种高效的方式创建它们的相对信息窗口。现在我的代码是: <script type="text/javascript"> var initialize = function() { var latlng = new google.maps.LatLng(45.0000, 9.0000); var marker1pos = new google.maps.LatLng(45
我想用Javascript传递这些变量,并以一种高效的方式创建它们的相对信息窗口。现在我的代码是:
<script type="text/javascript">
var initialize = function() {
var latlng = new google.maps.LatLng(45.0000, 9.0000);
var marker1pos = new google.maps.LatLng(45.1111, 9.1111);
var marker2pos = new google.maps.LatLng(46.2222, 9.2222);
var map = new google.maps.Map(document.getElementById('mappa'), options);
map.setOptions({styles: stylesArray });
var marker1 = new google.maps.Marker({position: marker1pos, map: map, flat: true});
var marker2 = new google.maps.Marker({position: marker2pos, map: map, flat: true});
var content1 = '<div class="infoMap"><h2><?php echo $contactName1; ?></h2></div>';
var infowindow1 = new google.maps.InfoWindow({content: content1});
google.maps.event.addListener(marker1, 'click', function() { infowindow1.open(map,marker1); });
var content2 = '<div class="infoMap"><h2><?php echo $contactName2; ?></h2></div>';
var infowindow2 = new google.maps.InfoWindow({content: content2});
google.maps.event.addListener(marker2, 'click', function() { infowindow2.open(map,marker2); });
}
window.onload = initialize;
</script>
var initialize=函数(){
var latlng=新的google.maps.latlng(45.0000,9.0000);
var marker1pos=newgoogle.maps.LatLng(45.1111,9.1111);
var marker2pos=新的google.maps.LatLng(46.2222,9.2222);
var map=new google.maps.map(document.getElementById('mappa'),options);
setOptions({style:stylesArray});
var marker1=new google.maps.Marker({position:marker1pos,map:map,flat:true});
var marker2=new google.maps.Marker({position:marker2pos,map:map,flat:true});
var content1='';
var infowindow1=new google.maps.InfoWindow({content:content1});
google.maps.event.addListener(marker1,'click',function(){infowindow1.open(map,marker1);});
var content2='';
var infowindow2=新的google.maps.InfoWindow({content:content2});
google.maps.event.addListener(marker2,'click',function(){infowindow2.open(map,marker2);});
}
window.onload=初始化;
当联系人数量很大时,编写和维护代码变得很困难
你知道有什么有效的方法吗?也许用一些像PHP中的foreach这样的语句
提前谢谢大家
Alessandro您可以使用JSON实现。 一旦将jSON数据传递给javascript,就可以轻松访问它
<script type="text/javascript">
var initialize = function() {
<?php
//generate json object
$jsonObj = ...
echo "var javascript_json_object=".jsonObj;
?>
//use javascript to access the javascript_json_object variable
window.onload = initialize;
</script>
var initialize=函数(){
//使用javascript访问javascript\u json\u对象变量
window.onload=初始化;
使用数组而不是单个变量:
$contactName1
$contactName2
到
范例
<?php foreach ($contactNames as $index => $contactName): ?>
var marker<?php echo $index; ?>pos = new google.maps.LatLng(45.1111, 9.1111);
var marker<?php echo $index; ?> = new google.maps.Marker({position: marker<?php echo $index; ?>pos, map: map, flat: true});
<!-------->
<?php endforeach; ?>
var-markerpos=newgoogle.maps.LatLng(45.1111,9.1111);
var marker=new google.maps.marker({position:markerpos,map:map,flat:true});
从php循环数据库或json获取联系人
for($i=1;$i<12;$i++){
$map_contactdetails.="var content1 = '<div class='infoMap'><h2>".$contactName1."</h2></div>';
var infowindow1 = new google.maps.InfoWindow({content: content1});
google.maps.event.addListener(marker1, 'click', function() { infowindow1.open(map,marker1); });";
}
关于($i=1;$iUse数组。请参阅@DanFromGermany的回答echo“var javascript_json_object=”。$jsonObj;
:-)@DanFromGermany已经很久了,我没有编写php:P..thx..hehehehe
<?php foreach ($contactNames as $index => $contactName): ?>
var marker<?php echo $index; ?>pos = new google.maps.LatLng(45.1111, 9.1111);
var marker<?php echo $index; ?> = new google.maps.Marker({position: marker<?php echo $index; ?>pos, map: map, flat: true});
<!-------->
<?php endforeach; ?>
for($i=1;$i<12;$i++){
$map_contactdetails.="var content1 = '<div class='infoMap'><h2>".$contactName1."</h2></div>';
var infowindow1 = new google.maps.InfoWindow({content: content1});
google.maps.event.addListener(marker1, 'click', function() { infowindow1.open(map,marker1); });";
}
<script type="text/javascript">
<?php echo $map_contactdetails; ?>
</script>