我正在尝试将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');
}
答案 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'])?>
}],
});