【问题标题】:Google Maps API 3 - extracting markers from MySQL DB using PHPGoogle Maps API 3 - 使用 PHP 从 MySQL DB 中提取标记
【发布时间】:2012-03-30 09:16:39
【问题描述】:
<?
 $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 源代码显示表格数据。还有其他方法(不显示数据)从表格中提取标记吗? 谢谢。

tutorial & demo page

【问题讨论】:

  • 您是否有理由想要另一种方式来做同样的事情?在我看来,如果这种方式有效,请使用它:)
  • 没有老兄 :) 对不起我的英语..

标签: php jquery mysql google-maps google-maps-api-3


【解决方案1】:

我更喜欢将它们呈现为 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 地图标记。

或者,您可以使用 PHP 脚本从数据库中获取您的项目,并将它们作为 JSON 字符串回显,然后使用 jQuery 通过 AJAX 调用它。

所以你的 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]);
    }
});

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2020-09-01
    • 2013-09-07
    • 1970-01-01
    • 2011-07-28
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多