gpt4 book ai didi

javascript - 具有嵌套 JSON 数据的 C3、D3 图表

转载 作者:行者123 更新时间:2023-11-30 20:53:46 30 4
gpt4 key购买 nike

我正在尝试使用 C3.js 创建一个条形图,其中数据通过 PHP 从 mySQL 数据库 中提取并返回到 JS 作为 JSON。PHP 代码搜索排好序的列并将所有相关列加在一起以得到一个数组 {category:name, total_purchased:value}

$category_data_sql = "SELECT `category`, `total_purchased` FROM `item` ORDER BY `category`";
$category_data_result = $mysqli->query($category_data_sql);

$data = array();
$key = 0;
foreach ($category_data_result as $item) {
$key = $item['category'];
if (!array_key_exists($key, $data)) {
$data[$key] = array(
'category' => $item['category'],
'total_purchased' => $item['total_purchased'],
);

} else {
$data[$key]['total_purchased'] = $data[$key]['total_purchased'] + $item['total_purchased'];

}

$key++;
}
print_r(json_encode($data));

生成的 JSON 输出是:

{
"BRACELET": {
"category": "BRACELET",
"total_purchased": 26
},
"SALESMAT": {
"category": "SALESMAT",
"total_purchased": 4
},
"TOPPING": {
"category": "TOPPING",
"total_purchased": 48
}
}

但是,我无法在图表中显示这些数据。下面的代码工作正常,一切都按预期显示。

var json_data = (<?php echo json_encode($data); ?>);
var chart = c3.generate({
bindto: '#chart',
data: {
x: 'category',
json: [
{
"category": "BRACELET",
"total_purchased": 26
},
{
"category": "SALESMAT",
"total_purchased": 4
},
{
"category": "TOPPING",
"total_purchased": 48
},
{
"category": "NECKLACE",
"total_purchased": 29
}
],
type: 'bar',
keys: {
x: 'category',
value: [ "total_purchased" ]
}
},
axis: {
x: {
type: "category"
}
},

bar: {
space: 0.25
}
});

但是一旦我使用变量 json_data 或者如果我手动复制生成的 JSON 数据,我会在控制台中得到一个没有错误的空白表。任何帮助将不胜感激。提前致谢,科林。

最佳答案

您可以使用 array_values() 将您的数组转换为数字类型:

$json_data = json_encode(array_values($data));

关于javascript - 具有嵌套 JSON 数据的 C3、D3 图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47890950/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com