php - Google Maps API 3 - 使用 PHP 从 MySQL DB 中提取标记

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

<?
 $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

最佳答案

我更喜欢将它们呈现为 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/

相关文章:

javascript - 无法显示子复选框

jQuery跨域ajax : callback when executed

python - 如何创建更多表 Pythonanywhere

python - Mysql 创建外键

php - Laravel:通过 xp_start 和 xp_end 查找行

javascript - 如何检索单选按钮的值并在 codeigniter 中插入数据库?

php - 如何在 Wordpress 模板上修复移动屏幕底部的按钮

javascript - 如何在 FOR 循环中创建暂停或延迟?

javascript - jQuery.ajax 到 utf-8 的 html 文件

java - 如何将 mili 秒格式更改为 yyyy-mm-dd hh :mm:ss to insert to mysql with datetype colunm