【问题标题】:Convert PHP String into Javastring Object将 PHP 字符串转换为 Javastring 对象
【发布时间】:2014-04-09 18:49:04
【问题描述】:

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

但是,没有显示任何内容。我已经搞砸了一段时间,找不到解决方案。我将不胜感激任何建议。谢谢。

【问题讨论】:

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


【解决方案1】:

我认为,您可能想要执行类似这样的操作,以将所有结果作为 JSON 从 PHP 返回到客户端,而不是上面的 while 循环。然后,您可以在 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
    });
}

【讨论】:

  • 感谢您当时的回复!很抱歉在您花时间回答这个问题后没有回复您。那是相当不体贴的。我真的不记得这个项目的复杂性,但我相信你的回答帮助了我:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-14
  • 2011-08-02
相关资源
最近更新 更多