我有一系列标记编码到网页中,我用它们以
的形式为谷歌地图生成标记generateMarkers([['Location', lat, long], ['Location2', lat2, long2],['Location3', lat3, long]3]);
所以现在我正在尝试从数据库中检索标记位置,所以我尝试使用下面的代码来执行此操作
getmkrs(
<?php
$db_con = mysql_connect("localhost",'root','');
mysql_select_db("db_name",$db_con);
$query_db = "Select * From table_name";
$result = mysql_query($query_db, $db_con);
$joiner = '';
?>
var_markers = [<?php while($row = mysql_fetch_assoc($result)):?>
<?= $joiner ?>
[<?= $addslashes($row['Row1']) ?>, <?= $row['Row2'] ?>, <?= $row['Row3'] ?> ]
<?$joiner = ','?>
<?php endwhile; ?>];
);
但最终页面显示为空白,甚至地图都没有出现。我正在尝试复制上面编码到网页中的数组。所以我的问题是如何使用数据库中的数据高效生成标记
答案 0 :(得分:0)
对于上帝的爱,不要在Javascript代码中手工拼凑JSON。在PHP中创建一个理智的数据结构,并使用json_encode
进行编码:
<?php
$db_con = mysql_connect("localhost", 'root', '');
mysql_select_db("db_name", $db_con);
$query_db = "SELECT * FROM table_name";
$result = mysql_query($query_db, $db_con);
$markers = array();
while ($row = mysql_fetch_assoc($result)) {
$markers[] = array($row['Row1'], $row['Row2'], $row['Row3']);
}
?>
<script>
var markers = <?php echo json_encode($markers); ?>;
generateMarkers(markers);
</script>