如何将数据库查询打印到 javascript 数组? [复制]

Posted

技术标签:

【中文标题】如何将数据库查询打印到 javascript 数组? [复制]【英文标题】:How can i print a database query to a javascript array? [duplicate] 【发布时间】:2014-09-18 05:45:50 【问题描述】:

我想在jvector map 中显示一些信息,并使用以下代码从数据库中获取信息:

$query = db_select('location', 'l')
    ->condition('l.lid', 0, '<>')
    ->fields('l', array('country'))
    ->range(0, 50);

$result = $query->execute();
$arr = [];

while($record = $result->fetchAssoc()) 
      $arr[] = $record;       

print_r($arr);

对于我在 Drupal 7 中使用位置模块的字段,我得到了这些数组:

Array ( 
    [0] => Array ( 
        [country] => de 
    ) 
    [1] => Array ( 
        [country] => de 
    ) 
    [2] => Array ( 
        [country] => fr 
    ) 
)

但是,我怎样才能取出这些信息,计算国家并将其显示为 javascript 显示,例如:var gdpData = "de": 2, "Fr": 1, ... ; 用于 jvector 地图?

【问题讨论】:

【参考方案1】:

json_encode — 返回值的 JSON 表示形式

json_encode($arr);

示例:

while($record = $result->fetchAssoc()) 
    if (isset($arr[$record["country"]])) 
        $arr[$record["country"]]++;
     else 
        $arr[$record["country"]] = 0;
    


json_encode($arr);

在 javascript 中:

JSON.parse(data);
console.log(data.de); //2

【讨论】:

哇,谢谢,我尽快试试!为什么你投了反对票? 我不知道,我的回答有效吗? 我可以猜测你的 -1 是有人不喜欢你的编码风格,但我会 +1 因为它有效。 我得到一个错误:SyntaxError:无效的箭头函数参数(箭头函数周围的括号可能会有所帮助)[0] => de 也许我做错了什么: 你混合 php 和 js...【参考方案2】:

您可以将包装函数 drupal_json_encode 用于 Drupal 7。

或者,您可以将 PHP $arr 变量传递给 drupal_add_js(array('locations' =&gt; $arr), 'setting'); 并在 javascript 中按如下方式访问它:

var gdpData = Drupal.settings.locations;

【讨论】:

非常感谢!我使用 drupal_add_js(array('location' => array_count_values($arr)), 'setting');我得到了我想要的:Object de=2, fr=1 非常好!

以上是关于如何将数据库查询打印到 javascript 数组? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 NSArray 传递给 JavaScript 文件并在 JavaScript 中打印该数组?

如何将数组从 js 打印到 ejs 模板?

从 MySQL 获取查询并将其打印到 javascript 日历中

如何在数组内打印带有一组对的JavaScript数组[重复]

从 PHP 查询中获取 JSON 数组后,使用 javascript 将 JSON 数组写入 html 页面

如何使用 Mongodb 或 Mongoose 查询并使用 javascript 打印?