0

我多次研究这个主题,但我找不到我的问题的正确答案。让我解释一下。

我正在使用 Google Maps API 创建一个应用程序,我希望根据我的数据库值在地图上显示多个位置。我的 javascript 中有一个名为 Locations 的对象,我在其中存储变量“名称”、“纬度”和“经度”(纬度、经度)。

var Locations =
[{  
    name: 'test',
    lat: 52.351753, 
    lon: 5.002035 

  }, 
  {     
    name: 'test2',
    lat: 52.390839, 
    lon: 4.908722

  }];

这部分是我存储位置的地方。虽然这是有效的,但它是硬编码的。所以,我想动态地将我所有的mysql数据库值从数据库中取出到我的javascript变量中。我用 PHP 遍历了数据库条目:

    foreach ($query as $post)
    {
        ?> <h1><?php echo $post['naam'] ?></h1> 
               <p><?php echo $post['plaats'] ?></p> 
               <p><?php echo $post['categorie'] ?></p> 
               <?php
    }

现在我尝试获取所有这些值并将它们放入我的 javascript 变量中,但没有任何成功。

var bedrijven = <?php echo json_encode($post); ?>;

当我 console.log 'bedrijven' 我只得到最后一个条目,但我希望存储每一行​​。有人可以帮我弄这个吗?如果它有效,那将是非常酷的。

我希望我解释得足够好。

谢谢!

4

3 回答 3

1

$post是您的迭代变量,因此它一次只包含数组的一个元素。如果您想要整个数组,请分配:

var bedrijven = <?php echo json_encode($query); ?>;
于 2013-10-23T18:39:01.677 回答
0

尝试:

PHP:

function getMarkers(){
    $response = array();

    foreach ($query as $post) {

    $response[] = array(
        'name' => $post['naam'],
        'lat' => $post['plaats'],
        'lng' => $post['categorie'],
    );
}
echo json_encode($response);
}

然后JS:

function addMarkers(json){
    var title =json[index]["naam"];
    var lat =json[index]["plaats"];
    var lng =json[index]["categorie"];

    marker = new google.maps.Marker({
        position: new google.maps.LatLng (lat, lng),
        map: YOUR_MAP
    });
}

jQuery.getJSON("URL OF PAGE",{
    format: "json",
    dataType: 'json',
    contentType: "application/json; charset=utf-8"},
    function(json){addMarkers(json);
});

更好的是,用 json 发送信息并用 jQuery 检索它getJSON,这可能需要一些调整。但我已经创建了你所说的内容。如果需要任何进一步的帮助,请大声喊叫。

您可能需要稍微研究一下才能对其进行配置..

祝你好运!

于 2013-10-23T18:51:15.090 回答
0

http://us1.php.net/json_encode上的示例应该会有所帮助。看起来您的 $post 应该是一个关联数组:

$post[] = ("name"=>"test","lat"=>52.351753, "lon"=> 5.002035); ?>
var bedrijven = <?php echo json_encode($post); ?>;

输出:

var bedrijven = [{"name":"test","lat":52.351753,"lon":5.002035}];

于 2013-10-23T18:35:47.297 回答