Google Maps API 3 - извлечение маркеров из БД MySQL с помощью PHP - PullRequest
2 голосов
/ 14 марта 2012
<?
 $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");
 }
?>

этот код (эхо) показывает данные таблицы в исходном коде HTML ... есть ли другой способ (который не показывает данные) для извлечения маркеров из таблицы?спасибо.

учебное пособие и демонстрационная страница

1 Ответ

3 голосов
/ 14 марта 2012

Я предпочитаю отображать их как 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>";

Вы можете перебрать свой массив items в JavaScript.

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]);
    }
});

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...