0

Google チャート API を使用してチャート作成ツールを作成しています。グラフを構成するデータのタイムスパンを変更するには、次のような文字列行を返す jsp サーブレットに jquery ポストを送信しています。

Swedish#68#Pasta#4#Vegetarian#2#Seafood#2#Salad#1

これは文字列データに格納され、2 次元配列に分割されます。これは、グラフの行を作成するために使用するものです。

                data.trim();
                var dataArray = data.split("#");  
                var catChartArray = new Array((dataArray.length/2));
                for (var i = 0; i < dataArray.length/2;i++)
                    {catChartArray[i]=new Array(1);}    
                var j =0;
                for (var i = 0; i<dataArray.length/2; i++){
                    catChartArray[i][0]= dataArray[j];
                    catChartArray[i][1]= dataArray[parseInt(j+1)];
                    j+=2;
                }

次に、addRows(catChartArray) メソッドを使用して google.visualization.DataTable() のインスタンスに渡します。この時点でグラフが描画されず、その理由がわかりません。構築時にまさにそのようなものを使用しており、その後は正常に動作します。私は Javascript を使用した経験がまったくないので、非常に明白なことを見落としている可能性があります。配列の印刷には、目を見張るものは何もありません。

Swedish,68,Pasta,4,Vegetarian,2,Seafood,2,Salad,1
4

2 に答える 2

0

とった!2 つのことがシステムにバグを作成しました。

もちろん、これはエラーを生成しません。

catChartArray[i][1]= dataArray[parseInt(j+1)];

しかし、そうあるべきです

catChartArray[i][1]= parseInt(dataArray[j+1]);

また、サーブレットは、配列を混乱させたに違いない多くの空の行を返しました。追加した

 <%@page trimDirectiveWhitespaces="true"%>

投稿リクエストに使用したjspファイルに。

これで、すべてが期待どおりに機能します。

于 2013-01-05T19:19:01.073 に答える
0

処理されたデータは次のようになります。

[["Swedish", "68"], ["Pasta", "4"], ["Vegetarian", "2"],...

次のようにすべきではありません:

["Swedish", "Pasta", "Vegetarian"...
["68", "4", "2"...
于 2013-01-05T17:37:59.233 に答える