既然说个错误,那我们先了解一下JSChart的数据格式
它的格式是一个二维数组,
你也许看到demo中
var data = [];
然后data.push(str);
这样做是不对的,你必须保证你push进去的是一个数组,因为我们要构造的是一个二维数组,不是一个一维的字符串数组。
正确的方式:
var data = [];
var element;
for(var i = 0; i < len; i++){
element = new Array();
element.push(ratingDocs[i].name);
element.push(ratingDocs[i].number*1);
data.push(element);
}
如果还不正确,那就是数值类型的问题了。继续往下看。
用JSCharts实现报表,后台传值到页面,发生如下错误:
JSChart:Input data in wrong format for selected chart type
JSChart:No data loaded
分析原因为:
var myData = new Array();
......
myChart.setDataArray(myData);
其中myData里面的值没有转换为数值类型,或不在数值范围之中。
解决办法为:
对于第一种情况需要强制转换一下类型,用parseFloat,parseInt,或直接*1即可。
对于第二中情况需要调整x轴和y轴的数值限制,包括数量限制和大小限制。
它的格式是一个二维数组,
你也许看到demo中
var myData = new Array(['2005', 2], ['2006', 1], ['2007', 3], ['2008', 6]);然后你声明一个数组,
var data = [];
然后data.push(str);
这样做是不对的,你必须保证你push进去的是一个数组,因为我们要构造的是一个二维数组,不是一个一维的字符串数组。
正确的方式:
var data = [];
var element;
for(var i = 0; i < len; i++){
element = new Array();
element.push(ratingDocs[i].name);
element.push(ratingDocs[i].number*1);
data.push(element);
}
如果还不正确,那就是数值类型的问题了。继续往下看。
用JSCharts实现报表,后台传值到页面,发生如下错误:
JSChart:Input data in wrong format for selected chart type
JSChart:No data loaded
分析原因为:
var myData = new Array();
......
myChart.setDataArray(myData);
其中myData里面的值没有转换为数值类型,或不在数值范围之中。
解决办法为:
对于第一种情况需要强制转换一下类型,用parseFloat,parseInt,或直接*1即可。
对于第二中情况需要调整x轴和y轴的数值限制,包括数量限制和大小限制。