我有一个php文件,它以这种格式返回一个json编码的数组数组:
[["2005","93"],["2006","98"],["2007","104"],["2008","120"],["2009","88"],["2010","104"],["2011","78"],["2012","96"],["2013","89"],["2014","100"],["2015","20"]]
我想在flot图中使用这些数据,但没有任何事情发生。这是我的jquery flot代码(使用flot-axislabels)。 #byYear是我的html中的div,其中图表为:
$.post('php/get_peoplebyyear.php',
function(output){
$(function () {
var options = {
xaxis: {
axisLabel: 'year',
axisLabelUseCanvas: true,
axisLabelFontSizePixels: 20,
axisLabelFontFamily: 'Arial'
},
yaxis: {
axisLabel: 'number',
axisLabelUseCanvas: true
}
};
console.log(output);
$.plot($("#byYear"),
[output],
options
);
});
});
使用此代码时,我的图表上没有任何点。这对我来说可能是一个小小的,愚蠢的错误,但是有什么能告诉我我做错了什么吗?
答案 0 :(得分:0)
数据格式正确,但回调函数错误。
删除$(function () {
在开始时和一个
});
在你的功能结束时。
答案 1 :(得分:0)
这就是我解决它的方法 - 基本上,flot没有将我的数据库查询的输出解释为数组数组,即使我将数据库查询的输出复制并粘贴到flot代码中, flot graph工作。
所以我做的是创建两个数组,数据和坐标。然后我json解析数据库输出并输入坐标,一次一对坐标,然后将每个坐标推入数据:
$.post('php/get_myprogram.php',
function(output){
var obj = jQuery.parseJSON( output );
var data = [];
var coordinate = [];
for (var i = 0; i< obj.length; i++) {
coordinate.push(obj[i][0]);
coordinate.push(obj[i][1]);
data.push(coordinate);
coordinate = [];
}
var options = {
xaxis: {
axisLabel: 'year',
axisLabelUseCanvas: true,
axisLabelFontSizePixels: 20,
axisLabelFontFamily: 'Arial'
},
yaxis: {
axisLabel: 'number',
axisLabelUseCanvas: true
}
};
$.plot($("#byYear"),
[data],
options
);
});