2012-03-13 63 views
2
<? 
$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源代碼表數據..有另一種方式(不顯示數據)來提取表標記? 謝謝。谷歌地圖API 3 - 從MySQL數據庫使用PHP

tutorial & demo page

+0

你有什麼理由想用另一種方法來做同樣的事情嗎?在我看來,如果這種方式有效,就用':)'。 – halfer 2012-03-13 22:19:16

+0

沒有傢伙:)對不起我的英語.. – zippo 2012-03-13 22:20:49

回答

3

我更願意使它們的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字符串回顯,然後使用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]); 
    } 
}); 

希望這有助於。