Codeigniter - 如何将JSON传递给assets文件夹中的JS文件?

时间:2017-04-24 11:16:26

标签: javascript php json codeigniter

我正在尝试将json从我的cotroller传递到资产文件夹中的JS

这是我的container.js

Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    series: [{
        name: 'Umur',
        colorByPoint: true,
        data: <?php echo json_encode($based_on_age); ?>
    }],
  });

这是我的控制器:

public function index(){
    $sbow=array();

    foreach ($this->m_data->based_on_weeks()->result_array() as $row) {
        $sbow[]=array($row['range'],(float)$row['total']);
    }
    $data['based_on_weeks'] = $sbow;

    $this->load->assets?(container.js,$data); //is there a way to pass data to assets?
    $this->load->view('state.html');
}

2 个答案:

答案 0 :(得分:3)

我相信,您只需将数据传递到视图文件即可。 &安培;您也将在JS文件中包含该数据。只需在脚本标记&amp;中创建视图文件中的变量即可。它可以在`container.js'文件中访问

您可以使用

var highChartData = <?php echo json_encode($data["based_on_weeks"])?>;

并在container.js中,您可以

Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    series: [{
        name: 'Umur',
        colorByPoint: true,
        data: highChartData
    }],
  });

答案 1 :(得分:1)

您希望这样做的方式不会起作用,因为CodeIgniter是一个PHP框架,因此在服务器端运行,而container.js文件是JavaScript的客户端。将数据/内容放入客户端项目并不是完成的事情,除非您每次都构建这些文件并动态地为它们提供服务。

除了来自@AgamBanga的答案,您还可以直接在您的视图文件中执行以下操作(尽管您需要每次都包含该视图,或者在每个视图中都包含该视图:

Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    series: [{
        name: 'Umur',
        colorByPoint: true,
        data: <?php echo json_encode($data['based_on_weeks'])?>
    }],
  });