如何将数据库查询打印到 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' => $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 中打印该数组?
从 MySQL 获取查询并将其打印到 javascript 日历中
如何在数组内打印带有一组对的JavaScript数组[重复]