我在使用 Highcharts 和 ajax 时遇到问题..
我正在创建一个数据源
来为highcharts提供一个数组..
这是数据源
function reportPertanyaan1()
{
$result = [];
$this->load->model("surveymodel");
for ($point=1; $point <=10 ; $point++) {
array_push($result, $this->surveymodel->GetData("1",$point));
}
echo json_encode($result);
}
这是接收数组的ajax代码
$.ajax({
url: site_url+"datasource/reportPertanyaan1",
success: function(data){
console.log(data);
pertanyaan1(data);
}
});
从 console.log(data)
中,我得到了这种数组 [2,1,0,1,1,0,1,0,0,0]
然后,从该 ajax 中,我调用 pertanyaan1
函数。这是代码
function pertanyaan1(jawaban){
$('#container1').highcharts({
chart: {
type: 'line'
},
title: {
text: ''
},
xAxis: {
categories: ['1', '2', '3','4', '5', '6','7', '8', '9','10']
},
yAxis: {
title: {
text: 'Banyak Data'
}
},
series: [{
name: 'Pertanyaan 1',
data: jawaban
}],
});
}
并且代码未显示图表。但它是 xAxis 标签的两倍,如下所示
但是,当我将 data: jamaban
替换为 data: [2,1,0,1,1,0,1,0,0,0]
.图表可以显示数据..
如有任何帮助
最佳答案
实际上,您是从 ajax 调用中获取 JSON 的。您需要将其定义为 Js 对象。并且不要将数据作为数组发送。将您的数据作为对象发送。
试试这个:
$data= [];
$this->load->model("surveymodel");
for ($point=1; $point <=10 ; $point++) {
array_push($data, $this->surveymodel->GetData("1",$point));
}
$result = new stdClass();
$result->data = $data;
echo json_encode($result);
并获取如下数据:
$.ajax({
url: site_url+"datasource/reportPertanyaan1",
success: function(result){
var resultData = JSON.parse(result);
pertanyaan1(resultData.data);
}
});
关于javascript - 无法将数组显示到图表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827572/