doukongyong44772
2013-08-12 11:45
浏览 38
已采纳

CodeIgniter变量数据/值未从Controller传递到视图

I need to echo out a variable value in the CodeIgniter view file. But when I run the site with...

<?php echo $highcharts; ?>

...on line 108, in the view, it gives an error. Please help me to echo out the value, so I can use it in HighCharts.

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: highcharts
Filename: reports/bqt_daily_income_view.php
Line Number: 108

This is my Controller:

function bqt_daily_income() {

    $json_data = array();
    $query = $this->db->query("SELECT time_stamp,  SUM(paid) AS income  FROM payments WHERE type = 'Banquet Reservation' GROUP BY time_stamp ORDER BY time_stamp ASC LIMIT 30");
    if ($query->num_rows() > 0) {
    foreach($query->result_array() as $row) {
    $json_data['data'][] = (int) $row['income'];
        }
    }
    $highcharts = json_encode($json_data);

    //return $json_data;
    //print_r($json_data); // Array ( [data] => Array ( [0] => 1700 [1] => 5000 ) ) 

    //print_r($highcharts); // {"data":[1700,5000]}

    $this->load->view('reports/bqt_daily_income_view', $highcharts);
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • dongwu9647 2013-08-12 11:47
    已采纳

    Try like:

    $this->load->view('reports/bqt_daily_income_view', array('highcharts' => $highcharts));
    

    In view file:

    echo $highcharts;
    

    Alternative post method:

    $this->data['highcharts'] = json_encode($json_data);
    $this->data['other']      = "bla bla bla";
    
    $this->load->view('reports/bqt_daily_income_view', $this->data);
    

    In view file:

    echo $highcharts;
    echo $other;
    
    已采纳该答案
    打赏 评论
  • doutui6644 2013-08-12 11:48

    I think you need:

    $data['highcharts'] = json_encode($json_data);
    $this->load->view('reports/bqt_daily_income_view', $data);
    
    打赏 评论
  • dongyanghan0556 2013-08-12 11:50

    You are supposed to pass the array of data to the view and the keys of array will become the the variables accessible in views

    function bqt_daily_income() {
    
        $json_data = array();
        $query = $this->db->query("SELECT time_stamp,  SUM(paid) AS income  FROM payments WHERE type = 'Banquet Reservation' GROUP BY time_stamp ORDER BY time_stamp ASC LIMIT 30");
        if ($query->num_rows() > 0) {
        foreach($query->result_array() as $row) {
        $json_data['data'][] = (int) $row['income'];
            }
        }
        $highcharts['highcharts'] = json_encode($json_data);
    
        //return $json_data;
        //print_r($json_data); // Array ( [data] => Array ( [0] => 1700 [1] => 5000 ) ) 
    
        //print_r($highcharts); // {"data":[1700,5000]}
    
        $this->load->view('reports/bqt_daily_income_view', $highcharts);
    }
    

    in view

    <?php echo print_r(json_decode($highcharts)); ?>
    
    打赏 评论

相关推荐 更多相似问题