使用codeigniter上的highcharts获取数据名和总数

yfwxisqw  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(333)

我只是坚持我的代码,我不能继续我的程序,有人能帮我打破我的墙,我可以继续我的代码。我在codeigniter上使用highcharts,这是我的代码:
控制器:

public function index()
{
    $chart=$this->Model_mou->get_data();
    $this->load->view('mou', $chart);
}

型号:

function get_data() 
{ 
  $this->db->select('dn_ln as name, count(dn_ln) as total');
  $this->db->from('mou');
  $this->db->group_by('dn_ln');
  $query = $this->db->get();
  return $query->result();
}

查看:

series: [{
      name: 'Precentage',
      colorByPoint: true,
      data: [
      <?php
         foreach ($chart as $x) {
         echo "['" .$x->name . "'," . $x->total ."],\n";
         }
      ?>

       ]
  }]

这是我的错误:错误信息代码
所以我想在饼图上显示名字和总数。我希望有人能帮我检查代码并修复它。谢谢。

fbcarpbf

fbcarpbf1#

在codeigniter中,视图希望以数组的形式从控制器获取数据。在视图中,可以直接访问数组元素,而不是数组本身。
所以如果你路过 $chart 进入视野 $chart 包含 $name 以及 $total 你管它叫什么。
您可以稍微“黑”一下控制器中的行为(这样您仍然可以使用 $chart 在视图中)通过放置 $chart 在数组中,然后将其传递到视图中。试试这个:

public function index()
{
    $chart=$this->Model_mou->get_data();
    $viewdata = array(
        'chart' => $chart,
    );

    $this->load->view('mou', $viewdata);
}

通过在您的控制器中做这个小小的更改,您的视图将按照您的期望开始工作(因为它需要 $chart 元素(数组本身) $viewdata 从控制器传递的数组)

相关问题