我将googleMap数据从mysql拉入php数组。我将此代码用作基础:
https://github.com/rajkavinchetty/google-maps-api-with-php-mysql/blob/master/index.php
它几乎可以完美地工作。从数组中提取lat/long数据并设置标记。
...
$locations[]=array( 'name'=>$name, 'lat'=>$latitude, 'lng'=>$longitude, 'lnk'=>$link );
...
但是我对信息窗口的标题/内容有问题。
在我使用的基本示例中,内容被格式化为链接:
var locations = [
<?php for($i=0;$i<sizeof($locations);$i++){ $j=$i+1;?>
[
'AMC Service',
'<p><a href="<?php echo $locations[0]['lnk'];?>"><?php echo $locations[0]['name'];?></a></p>',
<?php echo $locations[$i]['lat'];?>,
<?php echo $locations[$i]['lng'];?>,
0
]<?php if($j!=sizeof($locations))echo ","; }?>
];
但是变量只从数组中提取第一个链接和名称,它不经过循环。我试过很多不同的变量,比如
<?php echo $locations[$i]['name'];?>
但这是一个错误。
我既不擅长php数组,也不擅长loop或java,所以我在摸索线索。我已经浏览了这里的所有相关问题以寻求帮助,还参考了google堆栈。
任何帮助都将不胜感激。
更新:
前三个答复很有用,谢谢,但还没有。
在andy的评论和divyamohan的鼓励下,原来的解决方案应该是有效的,我意识到肯定有一些json格式问题,所以我尝试:
<?php echo json_encode($locations[$i]['name']);?>
这是有效的,现在我可以让这些循环通过。
但仍然试图让它作为一个链接工作。我试图解决与反斜杠哈迪克和大卫观察,但这仍然不起作用。到了一半。
3条答案
按热度按时间u2nhd7ah1#
你得换条线
到
您需要添加反斜杠(\)字符以从字符串文字转义引号。
luaexgnf2#
所以我终于找到了解决问题的办法。感谢所有人的评论,帮助我从另一个Angular 看待它。
最后,问题不在代码上。问题是数据。这应该是显而易见的。在links列中,我有带斜杠的url,names列中的文本包括撇号和外来字符。这些结合在一起会抛出json错误。我清理了所有的数据和修改后的代码完美地工作。
再次感谢您的评论。
mrwjdhj33#
只要在你的代码中替换这个,它就可以工作了。