【问题标题】:Getting database values in Javascript variable dynamically动态获取 Javascript 变量中的数据库值
【发布时间】:2013-11-02 04:29:07
【问题描述】:

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

我正在使用 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' 时,我只得到最后一个条目,但我希望存储每一行​​。有人可以帮我弄这个吗?如果它有效,那将是非常酷的。

我希望我解释得足够清楚。

谢谢!

【问题讨论】:

  • 你需要显示 ;

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


【解决方案1】:

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

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

【讨论】:

  • 没错,试过了,但也没有用。 $query 只是给了我实际的 SQL 查询。
  • 您问题中的foreach ($query as $post) 暗示$query 是一个结果数组。
【解决方案2】:

试试:

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 检索它,这可能需要一些调整。但我已经创建了你所说的内容。如果需要任何进一步的帮助,请大声喊叫。

您可能需要稍微查看一下this 才能对其进行配置..

祝你好运!

【讨论】:

    【解决方案3】:

    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}];

    【讨论】:

      猜你喜欢
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2021-05-06
      • 2018-09-02
      • 2014-01-03
      • 2020-04-11
      相关资源
      最近更新 更多