将PHP字符串转换为Javastring对象

时间:2014-03-06 21:21:42

标签: javascript php ajax arrays google-maps-api-3

我有一个纬度和经度的数据库。我正在使用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;
}
?>

但是,没有显示任何内容。我一直在搞乱这个问题并找不到解决办法。我将不胜感激任何建议。谢谢。

1 个答案:

答案 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
    });
}
相关问题