在Codeigniter上使用HIghcharts获取数据名称和总数

时间:2018-09-27 02:59:11

标签: php mysql codeigniter highcharts

我只是停留在我的代码上,而我无法继续执行我的程序,有人可以帮我突破墙,我可以继续我的代码。 我在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";
         }
      ?>

       ]
  }]

这是我的错误: error message code

所以我想在饼图上显示名称和总数。 我希望外面有人可以帮助我检查我的代码并修复它。 谢谢。

1 个答案:

答案 0 :(得分:2)

在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元素-它本身是一个数组-从控制器传递)