我正在尝试使用ajax加载多个系列,但暂时没有成功...
这是一个有效的代码,有一个系列。
在php文件中:
echo '{
"label": "Marge",
"data": [[1356998400000, 0], [1359676800000, 0], [1362096000000, 0], [1364770800000, 0], [1367362800000, 0], [1370041200000, 0], [1372633200000, 0], [1375311600000, 0], [1377990000000, 0], [1380582000000, 6926.92], [1383264000000, 7236.18], [1385856000000, 10.25]],
"color": "#3a8ce5"
}';
在js文件中:
var options = {
xaxis: {
min: (new Date(2012, 12, 1)).getTime(),
max: (new Date(2013, 11, 2)).getTime(),
mode: "time",
tickSize: [1, "month"],
monthNames: ["Jan", "Fev", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Dec"],
},
series: {
lines: {
show: true,
fill: true
},
points: {
show: true,
}
},
grid: { hoverable: true, clickable: true },
legend: {
show: false
}
};
var data = [];
$.plot("#flot-audience", data, options);
var dataurl = 'ajax/stats-ca.php';
function onDataReceived(series) {
data.push(series);
$.plot("#flot-audience", data, options);
}
$.ajax({
url: dataurl,
type: "GET",
dataType: "json",
success: onDataReceived
});
当我尝试将php代码更改为下一个代码时,图表上没有显示任何内容,y轴从-1.0变为1.0。
echo '{
"stats": [
{
"label": "CA",
"data": [[1356998400000, 0], [1359676800000, 0], [1362096000000, 0], [1364770800000, 0], [1367362800000, 0], [1370041200000, 0], [1372633200000, 0], [1375311600000, 0], [1377990000000, 0], [1380582000000, 24837.53], [1383264000000, 20210.38], [1385856000000, 952.72]],
"color": "#3a8ce5"
},
{
"label": "Marge",
"data": [[1356998400000, 0], [1359676800000, 0], [1362096000000, 0], [1364770800000, 0], [1367362800000, 0], [1370041200000, 0], [1372633200000, 0], [1375311600000, 0], [1377990000000, 0], [1380582000000, 6926.92], [1383264000000, 7236.18], [1385856000000, 10.25]],
"color": "#fa8ce5"
}
]
}';
有人能告诉我我做错了吗?
非常感谢
答案 0 :(得分:0)
我认为在推送数据系列时,您还有一组额外的括号。看看这个模拟http://jsfiddle.net/KMTjZ/9/。我提醒了两个值,所以你可以看看。
//Push
alert(JSON.stringify(data));
//Without
alert(JSON.stringify(stats));
答案 1 :(得分:0)
您需要使用series.stats而不仅仅是系列,因为您的传入数据现在具有额外的级别。