var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Hello World!"
});
<?php
$fd = fopen ("landmarks.csv", "r");
echo "var latlngarr=new Array();";
$i=0;
echo "var markerarr=new Array();";
while (!feof ($fd)) {
$buffer = fgetcsv($fd, 4096);
echo "var latlngarr[$i] = new google.maps.LatLng($buffer[2],$buffer[3]);";
echo "var markerarr[$i] = new google.maps.Marker({
position: latlngarr[$i],
map: map,
title:$buffer[1]";
});
$i++;
}
fclose ($fd);
?>
我想在谷歌地图中创建多个标记......第一个条目有效...但其他的,来自csv文件不起作用?混合的php和Javscript代码有什么问题吗?
答案 0 :(得分:0)
我猜测可能没有正确引用CSV文件中出现的数据,尤其是title
属性。从PHP动态构建Javascript时,应始终使用json_encode():
$b2 = json_encode($buffer[2]);
$b3 = json_encode($buffer[3]);
$title = json_encode($buffer[1]);
echo "var latlngarr[$i] = new google.maps.LatLng($b2,$b3);";
echo "var markerarr[$i] = new google.maps.Marker({
position: latlngarr[$i],
map: map,
title: $title";
});
使用json_encode保证这些PHP变量中的任何内容都将被翻译成语法正确的Javascript。
答案 1 :(得分:0)
在字符串周围添加引号并修复丢失的}
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title:"Hello World!"
});
<?php
$fd = fopen ("landmarks.csv", "r");
echo "var latlngarr=new Array();";
$i=0;
echo "var markerarr=new Array();";
while (!feof ($fd)) {
$buffer = fgetcsv($fd, 4096);
?>
latlngarr[<?= $i ?>] = new google.maps.LatLng(<?= $buffer[2] ?>, <?= $buffer[3] ?>);
markerarr[<?= $i ?>] = new google.maps.Marker({
position: latlngarr[<?= $i++ ?>],
map: map,
title: '<?= $buffer[1] ?>'
});
<?php
}
fclose ($fd);
?>