gpt4 book ai didi

php - 将 SQL 查询传递给 Google map 的 JS 数组

转载 作者:行者123 更新时间:2023-11-29 00:59:09 26 4
gpt4 key购买 nike

我想将一个字段、城市从 MySQL 数据库映射到 Google map 。我在这里找到了一个不错的脚本,但无法让它工作。

如果我将一个数组硬编码到位置 (var locations = ['Seattle', 'New York']),它工作正常。将此 SQL 数组传递到 JS 给我带来了问题。

我尝试了很多不同的方法,但还是卡住了。现在我正在尝试 getElementById,但没有骰子。任何帮助表示赞赏!谢谢。

<?php
$server_name="localhost";
$db_user="sql_user";
$db_pass="password";
$db="mydb";

mysql_connect($server_name, $db_user, $db_pass);
mysql_select_db($db);

$sql = "SELECT city FROM posts";
$result = mysql_query($sql) or die ('Query Error: ' . mysql_error());
while ($results = mysql_fetch_array($result))
{
$city[] = $results;
}

?>



<div id="map_canvas" style="width: 600px; height: 400px"></div>

<script type="text/javascript">

var locations = document.getElementById("<?=$city?>");

var mapOpt = {
mapTypeId: google.maps.MapTypeId.TERRAIN,
center: new google.maps.LatLng(38.00, -100.00),
zoom: 3
};

var map = new google.maps.Map(document.getElementById("map_canvas"), mapOpt);

var geocoder = new google.maps.Geocoder();
var index = 0;

var geocoderFunction = function () {
geocoder.geocode({ 'address': locations[index] }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
}

// Call the geocoder with a 100ms delay
index++;
if (locations.length > index) {
setTimeout(geocoderFunction, 100);
}
});
}

// Launch the geocoding process
geocoderFunction();
</script>

最佳答案

顾名思义,mysql_fetch_array 返回一个Array,而不是一个String。由于您将这些数组放在一个数组 ($city) 中,因此您得到的 ($city) 是一个包含数组的数组。 JSON 和 json_encode 都可以,但这不是您想要的。

你想要什么:

var locations = ["aa", "bb", "cc", "dd"];

你得到了什么:

var locations = [["aa"], ["bb"], ["cc"], ["dd"]];

或者也许

var locations = [{"city":"aa"}, {"city":"bb"}, {"city":"cc"}, {"city":"dd"}];

或这些的组合:)

如何解决:

while ( $row = mysql_fetch_array($result, MYSQL_NUM) ) {    $city[] = $row[0];}

Also: json_encode returns its value. It doesn't alter its argument by reference. So just json_encode(..) won't do anything. Try:

$city = json_encode($city);

关于php - 将 SQL 查询传递给 Google map 的 JS 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4528184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com