我尝试从员工处获取几个系列的数据,并通过HighCharts绘制它们。 在用户点击之前我不知道公司,所以我得到了所有员工及其数据(点数)的ajax。
我有一个选择公司的选择框。完成后,我通过AJAX / jQuery调用服务器以获取添加到HighChart的数据:
$("#company").change(function(){
$.ajax({
type: 'POST',
dataType: 'json',
url: xxxxx,
async: false,
data: { company: company},
success: function(data) {
$.each(data, function(val, text) {
alert (val);
alert (text);
chart2.addSeries({
name: val,
data: text
});
});
}
...
通过Firebug从服务器获取的数据是这样的:
{"Employee1":[["1356908400000","10.00"],["1359586800000","11.00"], ["1362006000000","12.00"],["1364684400000","13.45"]],"Employee2":[["1356908400000","10.00"],["1359586800000","11.00"],["1362006000000","12.00"],["1364684400000","13.45"]]}
Employee1和Employee2应该是系列。 但是,当我调用addseries方法时,我收到此错误:
Uncaught Highcharts error #14: www.highcharts.com/errors/14
似乎数据不喜欢Highcharts。 当我通过警报进行调试时,我得到了这个:
alert (val)->Employee1
alert (text)=1356908400000,10.00,1359586800000,11.00,1362006000000,12.00,1364684400000,13.45
当我放置没有ajax的数据时,这个例子工作正常。
有什么想法吗?
答案 0 :(得分:0)
我找到了答案: - )
text是一个数组,所以我需要另一个$ .each来读取它并格式化结果:
success: function(data) {
$("html").css('cursor','auto');
$.each(data, function(val, text) {
counter = 0;
$.each(text, function() {
if (counter==0) {
employee_data= "[" + this + "]";
}
else{
employee_data= employee_data + "," + "[" + this + "]";
}
counter=1
});
employee_data = "["+ + "]";
chart.addSeries({
name: val,
data: employee_data
});
});
},