我使用highcharts插件在codeigniter网站上打印统计信息。
现在我从我的数据库中获取数据我管理它但是当我在highcharts中打印它时没有打印出来。
这是我的PHP代码:
$arr_point = array();
$check_price = array();
for($i = 1; $i <= 12; $i++){
$sum = 0;
$this->load->model('backend/Notification_model');
$this->db->select('*,');
$this->db->from('booking');
$query = $this->db->get();
foreach ($query->result() as $row){
$sum+=(float)$row->total_with_markup;
}
$arr_point[] = str_replace(',', '.', $sum);
}
$result = array();
array_push($result,$arr_point);
return(json_encode($result));
这是我的高图配置:
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: $('#riepilogo option:selected').text()
},
subtitle: {
text: ''
},
xAxis: {
categories: [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
]
},
yAxis: {
min: 0,
title: {
text: 'Euro'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b>{point.y:.2f} euro</b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
series: [ {
name: $('#riepilogo options:selected').text(),
data: "<?php echo json_decode($data_chart); ?>"
}]
});
});
如果我打印json_decode($data_chart)
我就明白了:
Array
如果我打印($data_chart
我就明白了:
[["0","297.23","74.41","65.57","2167.32","7649.77","2058.05","146.95","92.55","0","1754.72","0"]]
我试图不使用json_encod
e,使用json_decode
,没有。有人能帮我吗?感谢
答案 0 :(得分:0)
问题是您在脚本中创建了一个数组:
$arr_point = array();
尝试仅返回数组并删除: $ result = array(); array_push($结果,$ arr_point);
并返回$ array_point;
或尝试:
$arr_point = "";
$check_price = array();
for ($i = 1; $i <= 12; $i++) {
$sum = 0;
$this->load->model('backend/Notification_model');
$this->db->select('*,');
$this->db->from('booking');
$query = $this->db->get();
foreach ($query->result() as $row) {
$sum+=(float) $row->total_with_markup;
}
if($arr_point == ""){
$arr_point .= "[";
}
if($arr_point != ""){
$arr_poin .= ",";
}
$arr_point .= str_replace(',', '.', $sum);
}
$arr_point .= "]";
return $arr_point;
答案 1 :(得分:0)
您的代码包含许多注入,因此我建议在您的php文件中打印json,如:
echo json_encode($arr, JSON_NUMERIC_CHECK);
然后在javascript中调用$.getJSON()
函数并在highcahrts中使用它,跳过解码/丢失数据类型。