2011-09-05 69 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

相关问题