【问题标题】:Passing data to Horizontal Bar Highchart.js showing only one record in codeigniter将数据传递给水平条 Highchart.js,在 codeigniter 中只显示一条记录
【发布时间】:2021-05-25 18:57:22
【问题描述】:

我真的很困惑如何将数据从控制器传递到水平条 bcz 这是我第一次处理图表,我希望有人可以帮助我 n 告诉我获取数据 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的数据传递到水平条形图。

【问题讨论】:

标签: json highcharts foreach bar-chart codeigniter-3


【解决方案1】:

您需要将您的 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);
?>

【讨论】:

  • 谢谢你的回复..它现在可以工作了..@adam P.你更喜欢 ajax 来调用图表数据而不是使用 php 吗?我真的很想使用ajax,但我不知道如何。你能给我一些线索吗?如果你这样做,我真的很高兴:)
猜你喜欢
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-11
  • 1970-01-01
相关资源
最近更新 更多