我想在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地图?
答案 0 :(得分:2)
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)
您可以使用Drupal 7的包装函数drupal_json_encode
。
或者,您可以将PHP $arr
变量传递给drupal_add_js(array('locations' => $arr), 'setting');
并在javascript中按如下方式访问:
var gdpData = Drupal.settings.locations;