Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery jqplot多数组作为参数_Jquery_Ajax_Servlets_Jqplot - Fatal编程技术网

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));
如果其他人遇到同样的问题,希望这能有所帮助