我有一个纬度和经度的数据库。我正在使用java脚本和Google Maps API生成此信息的热图。我试图使用PHP填充javascript数组。目前,我这样做:
alumdata = [ $.ajax({
url: 'Major.php',
type: 'POST'
data: { major : major },
success: function (data) {
}
})
];
Major.php是将填充Javascript数组alumdata的PHP文件。我基本上试图将Google地图对象添加到JS Array的每个元素中并调用initalize函数,以便热图上的位置根据变量major的值而变化。 在我的Major.php文件中,我这样做:
<?php
require 'connectDB.php';
$major = $_POST['major'];
if ($major == 'All'){
if(!$entry=$db->query("SELECT * FROM trial"))
die('There was an error connecting: queryError [' . $db->error . ']');
}
else{
if(!$entry=$db->query("SELECT * FROM trial WHERE Major = '$major'"))
die('There was an error connecting: queryError [' . $db->error . ']');
}
while($foobar=$entry->fetch_assoc()){
$longitude = $foobar['Longitude'];
$latitude = $foobar['Latitude'];
print <<<HTML2
new google.maps.LatLng($latitude, $longitude),
HTML2;
}
?>
但是,没有显示任何内容。我一直在搞乱这个问题并找不到解决办法。我将不胜感激任何建议。谢谢。
答案 0 :(得分:0)
我认为不是你在那里的while循环,你可能想要做这样的事情将所有结果作为JSON从PHP返回到客户端。然后,您可以在JavaScript端循环查看您想要在地图上创建LatLng点的结果。
$data = array();
while($foobar = $entry->fetch_assoc()){
$data[]['longitude'] = $foobar['Longitude'];
$data[]['latitude'] = $foobar['Latitude'];
}
echo json_encode($data);
然后在JavaScript方面的成功回调中,你会想要做这样的事情:
success: function ( data ) {
$.each( data, function( index, point) {
// create a map point using point.latitude and point.longitude
});
}