2011-09-05 66 views
0

我試圖將結果存儲在使用PHP的MySQL數組中,然後使用結果調用JavaScript函數以在那裏使用結果。我不知道爲什麼我的地圖上沒有顯示出來(試圖實現谷歌地圖在我的網頁)更新:嘗試在PHP中存儲數組,然後調用一個javascript函數

我的PHP/HTML/JavaScript調用

<?php 
..... 
<div id="content" 
      ...... 

$address=array(); 
//will list out where to go 
while ($sec = mysql_fetch_array($result2)) { 
     $address[$x++] = ($sec[5] . " " . $sec[7]); 
} 
print_r($latlng); 
print_r($address); 
mysql_close($link); 
?> 

<div id="address_container"> 
<?php 
print array_shift($address); 
?> 
</div> 
</div> 

我的Javascript代碼:

<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"), myOp$ 
    } 

function codeAddress() { 
var address = document.getElementByID("address_container").innerHTML; 
console.log(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: " + s$ 
     } 
    }); 
} 
+0

什麼是ID爲「address」的HTML元素?你想用什麼格式將數據從PHP傳輸到JavaScript?我想你需要使用/缺少對[json_encode()](http://php.net/manual/en/function.json-encode.php)的調用...因爲它是你傳入一個引用到HTML元素本身,這不可能是正確的?它可以?在谷歌地圖上不是很大,但我不能相信這是它期望的... – DaveRandom

+0

我想輸入一個地址數組...例如。 Array([1] => 1251 Front Street Lahaina,HI 96761 [2] => 160 Keonekai Rd Hihei,HI 96753)。然後將其輸入到javascript中以將這些地址放入以在地圖上放置標記。但現在我的地圖也沒有出現... – pythono

回答

1

看是否有此產生的結果你期待:

PHP:

<?php 

    // ...... 

    $address = array(); 
    while ($sec = mysql_fetch_array($result2)) $address[++$x]= "$sec[5] $sec[7]"; 

    // this should print the same data as you were getting before if you un-comment it 
    // print_r($address); 
    mysql_close($link); 

?> 
<div id="address_container"><?php print array_shift($address); ?></div> 
</div> <!-- I left this here because I don't know what the rest of your HTML looks like... --> 
<script type="text/javascript"> 
document.write(codeAddress()); 
</script> 

的Javascript:

function codeAddress() { 
    var address = document.getElementByID("address_container").innerHTML; 
    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); 
    } 
    }); 
} 
+0

我試過這個,我的地圖仍然沒有顯示 – pythono

+0

錯誤,因爲我的地圖沒有出現我的錯。 (DOH !!)。但是使用函數codeAddress(),它仍然不會將標記放在地圖上。因此讓我相信這個功能並沒有被稱爲? – pythono

+0

@pythono你能用你當前的代碼更新這個問題嗎? – DaveRandom

0

不print_r的$地址,但呼應它變成一個JS變種

</div> 
<script type="text/javascript"> 
var address = <?php echo json_encode($address); ?> ; 
document.write(codeAddress()); 
</script> 

那麼沒有必要在你的函數來選擇它

+0

雖然這是我的直接想法,經過一些關於主題的閱讀,似乎該函數期望一個字符串與人類可讀地址。它看起來像OP的代碼已從[這裏](http://code.google.com/apis/maps/documentation/javascript/services.html#GeocodingStatusCodes)中解除。確實是 – DaveRandom

+0

!我+你的答案。 – roselan

+0

我想在我的網站上看到任何東西,當我插入「echo json_encode($ address);」聲明?或者那是做什麼的?對不起,我的麻煩,我是新來的JavaScript。 – pythono

0

這是什麼例子我正要離開...從谷歌api

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

    function codeAddress() { 
    var address = document.getElementById("address").value; 
    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); 
     } 
    }); 
    } 

<body onload="initialize()"> 
<div id="map_canvas" style="width: 320px; height: 480px;"></div> 
    <div> 
    <input id="address" type="textbox" value="Sydney, NSW"> 
    <input type="button" value="Encode" onclick="codeAddress()"> 
    </div> 
</body> 

ref:http://code.google.com/apis/maps/documentation/javascript/services.html#GeocodingAddressTypes

相關問題