Jquery jqplot多数组作为参数
您好,我正在使用Jquery jqplot多数组作为参数,jquery,ajax,servlets,jqplot,Jquery,Ajax,Servlets,Jqplot,您好,我正在使用servlet响应为条形图的jqplot提供参数 servlet响应语句如下: out.println("725,759,2032,171,2761,133175,166163,409,28630,3754@0,375,1482,0,2051,125857,167524,0,125406,4022@0,0,0,1,0,125406,0,0,0,0"); 如果响应成功,ajax将使用dataRenderer:dataRenderer(dataArr)作为数组参数调用plot函数。
servlet
响应为条形图的jqplot
提供参数
servlet
响应语句如下:
out.println("725,759,2032,171,2761,133175,166163,409,28630,3754@0,375,1482,0,2051,125857,167524,0,125406,4022@0,0,0,1,0,125406,0,0,0,0");
如果响应成功,ajax
将使用dataRenderer:dataRenderer(dataArr)
作为数组参数调用plot函数。
但是,发现一个错误,表明“未指定数据”
我尝试记录dataRenderer返回,它是
"725,759,2032,171,2761,133175,166163,409,28630,3754,0,375,1482,0,2051,125857,167524,0,125406,4022,0,0,0,1,0,125406,0,0,0,0"
但预期的答案应该是
[725,759,2032,171,2761,133175,166163,409,28630,3754],[0,375,1482,0,2051,125857,167524,0,125406,4022],[0,0,0,1,0,125406,0,0,0,0]
非常感谢您的帮助!谢谢
function log(msg) {
setTimeout(function() {
throw new Error(msg);
}, 0);
}
var form = $('#form1');
var storedData = [3, 7];
var plot1;
//$( "#plot" ).click(function(){
form.submit(function(){
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: {n1:n1.value,n2:n2.value},
success: function (data) {
var result=data;
//$('#result').attr("value",result);
renderGraph(result);
}
});
return false;
});
var dataRenderer = function(userData){
var result = new Array();
var seperator1 = /\s*@\s*/;
var seperator2 = /\s*,\s*/;
storedData = userData.split(seperator1);
result.push(storedData[0].split(seperator2));
result.push(storedData[1].split(seperator2));
result.push(storedData[2].split(seperator2));
return result;
};
function renderGraph(dataArr) {
if (plot1) {
plot1.destroy();
}
log(dataRenderer(dataArr));
var ticks = ['Pub1', 'Pub101', 'Pub121', 'Pub141', 'Pub161', 'Pub2', 'Pub3', 'Pub61', 'Pub81', 'Pub82'];
var plot1 = $.jqplot('chart1', [], {
dataRenderer: dataRenderer(dataArr),
seriesColors : ['#1cbd17', '#e44e23', '#23b9e4', '#C7754C', '#17BDB8', '#b817bd'],
seriesDefaults : {
renderer : $.jqplot.BarRenderer,
rendererOptions : {
fillToZero : true
}
},
series : [{
label : 'delivered'
}, {
label : 'filtered out'
}, {
label : 'incomplete'
}, {
label : ''
}
],
legend : {
show : true,
placement : 'outsideGrid'
},
axes : {
xaxis : {
renderer : $.jqplot.CategoryAxisRenderer,
ticks : ticks
},
yaxis : {
pad : 1.05,
tickOptions : {
formatString : '%d'
}
}
}
});
plot1.resetAxesScale();
plot1.replot();
}
</script>
函数日志(msg){
setTimeout(函数(){
抛出新错误(msg);
}, 0);
}
变量形式=$(“#形式1”);
var storedData=[3,7];
变量1;
//$(“#绘图”)。单击(函数(){
表单提交(函数(){
$.ajax({
类型:form.attr('method'),
url:form.attr('action'),
数据:{n1:n1.value,n2:n2.value},
成功:功能(数据){
var结果=数据;
//$('#result').attr(“value”,result);
渲染图(结果);
}
});
返回false;
});
var dataRenderer=函数(userData){
var result=新数组();
变量separator1=/\s*@\s*/;
变量分隔符2=/\s*,\s*/;
storedData=userData.split(单独为1);
result.push(存储数据[0].split(分隔符2));
result.push(存储数据[1].split(分隔符2));
result.push(存储数据[2].split(分隔符2));
返回结果;
};
函数渲染图(dataArr){
如果(图1){
plot1.destroy();
}
日志(dataRenderer(dataArr));
变量ticks=['Pub1','Pub101','Pub121','Pub141','Pub161','Pub2','Pub3','Pub61','Pub81','Pub82'];
变量plot1=$.jqplot('chart1',[]{
dataRenderer:dataRenderer(dataArr),
系列颜色:[“#1cbd17”、“#e44e23”、“#23b9e4”、“#C7754C”、“#17BDB8”、“#b817bd”],
系列默认值:{
渲染器:$.jqplot.blunderer,
渲染器选项:{
fillToZero:对
}
},
系列:[{
标签:“已交付”
}, {
标签:“过滤掉”
}, {
标签:“不完整”
}, {
标签:“”
}
],
图例:{
秀:没错,
位置:“外部网格”
},
轴线:{
xaxis:{
渲染器:$.jqplot.CategoryAxisRenderer,
滴答声:滴答声
},
亚克斯:{
pad:1.05,
选择:{
格式化字符串:“%d”
}
}
}
});
plot1.resetAxesScale();
plot1.replot();
}
好的,解决了!!!jqplot假设在我提供str数组时使用int数组。
这就是我出错的原因
以下是修复方法:
result.push(storedData[0].split(seperator2).map(Number));
result.push(storedData[1].split(seperator2).map(Number));
result.push(storedData[2].split(seperator2).map(Number));
如果其他人遇到同样的问题,希望这能有所帮助