将数据传递给单杠 Highchart.js 在 codeigniter 中仅显示一条记录
Passing data to Horizontal Bar Highchart.js showing only one record in codeigniter
我真的很困惑如何将数据从控制器传递到水平条 bcz 这是我第一次处理图表,我希望有人能帮助我 n 告诉我获取数据并将其传递给图表的最佳方法。
我尝试在视图中使用 foreach,然后在图表脚本中回显 ..当我使用 Print_R 时,我可以看到所有数据 ..但是当我把它放在水平条形图表中时,它只给我 1记录 。 here is the screenshot of the result
这就是我在控制器和视图中所做的:
控制器
public function index()
{
$data['db1'] = $this->m_mds->isiChart();
$data['content'] = 'tempelates/MDS/content';
$data['chart'] = 'tempelates/MDS/chart';
$this->load->view('tempelate',$data);
}
这是视图中的 foreach :
<figure class="highcharts-figure">
<div id="container"></div>
</figure>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>
<script src="https://code.highcharts.com/modules/accessibility.js"></script>
<?php foreach ($db1->result_array() as $key) {
$nmbrg= $key['NAMA_BRG'];
$oos=$key['OOS'];
$kurang= $key['kurang_4'];
$osa=$key['OSA'];
}?>
<script>
Highcharts.chart('container', {
chart: {
type: 'bar',
options3d: { enabled: true, }
},
title: {
text: 'Stacked bar chart'
},
xAxis: {
categories: [<?php echo json_encode($nmbrg)?> ]
},
yAxis: {
min: 0,
title: {
text: 'Total fruit consumption'
}
},
legend: {
reversed: true
},
plotOptions: {
series: {
stacking: 'normal'
}
},
series: [{
name: 'OOS',
data: [<?php echo json_encode($oos)?>]
}, {
name: '<4',
data: [<?php echo json_encode($kurang)?>]
}, {
name: 'OSA',
data: [<?php echo json_encode($osa)?>]
}]
});
</script>
我想做的是..像这样制作foreach的输出
[{"namabrg":"YOLITE C+100 STRAWBERRY ","oos":1719,"kurang":4264,"osa":40100},{"namabrg":"YOLITE KIDS 70 ML BND 4 ORI ","oos":2,"kurang":3,"osa":162}]
并将来自 foreach 的所有数据传递给水平条形图。
您需要将 PHP 代码块更改为:(将单个值放入数组并将数组值内爆到列表)
<?php
$nmbrg_values = array();
$oos_values = array();
$kurang_values = array();
$osa_values = array();
foreach ($db1->result_array() as $key) {
$nmbrg_values[] = $key['NAMA_BRG'];
$oos_values[] = $key['OOS'];
$kurang_values[] = $key['kurang_4'];
$osa_values[] = $key['OSA'];
}
$nmbrg = implode(", ", $nmbrg_values);
$oos = implode(", ", $oos_values);
$kurang = implode(", ", $kurang_values);
$osa = implode(", ", $osa_values);
?>
我真的很困惑如何将数据从控制器传递到水平条 bcz 这是我第一次处理图表,我希望有人能帮助我 n 告诉我获取数据并将其传递给图表的最佳方法。
我尝试在视图中使用 foreach,然后在图表脚本中回显 ..当我使用 Print_R 时,我可以看到所有数据 ..但是当我把它放在水平条形图表中时,它只给我 1记录 。 here is the screenshot of the result
这就是我在控制器和视图中所做的:
控制器
public function index()
{
$data['db1'] = $this->m_mds->isiChart();
$data['content'] = 'tempelates/MDS/content';
$data['chart'] = 'tempelates/MDS/chart';
$this->load->view('tempelate',$data);
}
这是视图中的 foreach :
<figure class="highcharts-figure">
<div id="container"></div>
</figure>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
<script src="https://code.highcharts.com/modules/export-data.js"></script>
<script src="https://code.highcharts.com/modules/accessibility.js"></script>
<?php foreach ($db1->result_array() as $key) {
$nmbrg= $key['NAMA_BRG'];
$oos=$key['OOS'];
$kurang= $key['kurang_4'];
$osa=$key['OSA'];
}?>
<script>
Highcharts.chart('container', {
chart: {
type: 'bar',
options3d: { enabled: true, }
},
title: {
text: 'Stacked bar chart'
},
xAxis: {
categories: [<?php echo json_encode($nmbrg)?> ]
},
yAxis: {
min: 0,
title: {
text: 'Total fruit consumption'
}
},
legend: {
reversed: true
},
plotOptions: {
series: {
stacking: 'normal'
}
},
series: [{
name: 'OOS',
data: [<?php echo json_encode($oos)?>]
}, {
name: '<4',
data: [<?php echo json_encode($kurang)?>]
}, {
name: 'OSA',
data: [<?php echo json_encode($osa)?>]
}]
});
</script>
我想做的是..像这样制作foreach的输出
[{"namabrg":"YOLITE C+100 STRAWBERRY ","oos":1719,"kurang":4264,"osa":40100},{"namabrg":"YOLITE KIDS 70 ML BND 4 ORI ","oos":2,"kurang":3,"osa":162}]
并将来自 foreach 的所有数据传递给水平条形图。
您需要将 PHP 代码块更改为:(将单个值放入数组并将数组值内爆到列表)
<?php
$nmbrg_values = array();
$oos_values = array();
$kurang_values = array();
$osa_values = array();
foreach ($db1->result_array() as $key) {
$nmbrg_values[] = $key['NAMA_BRG'];
$oos_values[] = $key['OOS'];
$kurang_values[] = $key['kurang_4'];
$osa_values[] = $key['OSA'];
}
$nmbrg = implode(", ", $nmbrg_values);
$oos = implode(", ", $oos_values);
$kurang = implode(", ", $kurang_values);
$osa = implode(", ", $osa_values);
?>