<?
$query = mysql_query("SELECT * FROM poi_example");
while ($row = mysql_fetch_array($query)){
$name=$row['name'];
$lat=$row['lat'];
$lon=$row['lon'];
$desc=$row['desc'];
echo ("addMarker($lat, $lon,'<b>$name</b><br/>$desc');\n");
}
?>
此代码(echo)显示 HTML 源代码中的表格数据。是否有另一种方法(不显示数据)从表格中提取标记? 谢谢。
最佳答案
我更喜欢将它们呈现为 JSON。您可以像上面那样在页面内执行此操作。
<?php
// do database connection here
// run query to fetch your results
$rows = array();
while ($row = mysql_fetch_array($query)) {
$rows[] = $row;
}
echo "<script>var items = '".json_encode($rows)."';</script>";
您可以在 JavaScript 中迭代 items
数组。
for (var i = 0; i < items.length; i++) {
(function(item) {
addMarker(item.lat, item.lon, '<b>' + item.name + '</b><br />' + item.desc);
})(items[i]);
}
我认为您的 addMarker()
函数创建了一个标准的 Google map 标记。
或者,您可以使用 PHP 脚本从数据库中获取项目,并将其作为 JSON 字符串进行回显,然后通过 AJAX 和 jQuery 进行调用。
所以你的 PHP 脚本将是:
<?php
header('Content-Type: application/json');
// connect to database
// do query
$rows = array();
while ($row = mysql_fetch_array($res)) {
$rows[] = $row;
}
echo json_encode($rows);
exit;
然后在您的 JavaScript 文件中:
$.getJSON('script.php', function(items) {
for (var i = 0; i < items.length; i++) {
(function(item) {
addMarker(item.lat, item.lon, '<b>' + item.name + '</b><br />' + item.desc);
})(items[i]);
}
});
希望这有帮助。
关于php - Google Maps API 3 - 使用 PHP 从 MySQL DB 中提取标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9693057/