2012-03-15 53 views
0

基本上我在與獲得谷歌地圖標記是在我的數據庫地址,當我用PHP做了一個問題:用PHP谷歌地圖/ MySQL的

print codeAddress("example address"); 

它工作正常,但是,當我在這裏設置它,它甚至不顯示地圖,這裏有人可以幫我解決這個問題嗎?

感謝, Wakeeta

<DOCTYPE html> 
<html> 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map_canvas { height: 100% } 
    </style> 
    <script type="text/javascript" 
    src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAWiB6PqOyqsJJZLmoZ5CFb2IP6sqqhtI8&sensor=false"> 
    </script> 
    <script type="text/javascript"> 
    var geocoder; 
    var map; 
    function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng(-34.397, 150.644); 
    var myOptions = { 
     zoom: 8, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
<?php 
    $dbh=mysql_connect('webdb.uvm.edu','swakita','PASSWORD'); 

if (!$dbh) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db('SWAKITA', $dbh); 

$addressprint = mysql_query("SELECT fldStreet FROM tblLocation"); 
while ($row = mysql_fetch_row($addressprint)) { 
foreach ($row as $field) { 
print "codeAddress($field)"; 
} 
} 
?> 
} 



    function codeAddress(address) { 
    geocoder.geocode({ 'address': address}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
     } else { 
     alert("Geocode was not successful for the following reason: " + status); 
     } 
    }); 
    } 
</script> 
</head> 
<body onload="initialize()"> 

<div id="map_canvas" style="height:90%;top:30px"></div> 
</body> 
</html> 

回答

1
print "codeAddress($field)"; 

創建無效的Javascript代碼,因爲當PHP擴展$字段變量也不會是加引號。這會阻止地圖顯示,因爲Javascript遇到致命錯誤。試試這個:

print "codeAddress(\"$field\")"; 
+0

感謝您的幫助!這對我的數據庫中的第一個地址有效,但是我的foreach語法有可能是錯誤的嗎?我試圖打印出我的數據庫中的每個地址的代碼地址行。 **編輯**它在數據庫中只有一個地址時有效,並且地圖不能再次顯示。 – Wakeeta 2012-03-15 05:48:23

+0

您的foreach聲明是不必要的。 mysql_fetch_row返回一個數組。因爲你只提取一列,所以數組的大小爲1.因此,你可以編寫:'$ row [0]'而不是foreach。我不確定多個地址問題。 – zinzendorf 2012-04-02 19:45:06