2016-08-31 13 views
1

Morrisチャートを使用して動的配列をグラフ化する必要があります。JSONを使用してモリスチャートに動的配列を渡す

Rectangular Array

私はJSONを使用して、モリスチャートに渡す試み:アレイは、このようになります(列の可変数を有する)動的矩形アレイです。これは私のコードです:

function SHOWGRAPH() { 
 

 
     $.ajax({ 
 
      type: "POST", 
 
      contentType: "application/json; charset=utf-8", 
 
      url: "/samplepage.aspx/SHOW_GRAPH", 
 
      data: "", 
 
      dataType: "json", 
 
      success: function(data) { 
 
      
 
        
 
       for (var i = 0; i < data.d.length; i++) { 
 
       
 
       Morris.Area({ 
 
         
 
        element: 'myfirstchart', 
 
        data:data.d, 
 
        xkey: data.d[0], 
 
        ykeys: [data.d[i]], 
 
        hideHover: 'auto', 
 
        resize: true,      
 
         
 
       }) 
 
       }; 
 
       
 
      } 
 

 
     }); 
 
    } 
 

私が原因比類のないデータセットにエラーを取得しています:誰が正しく渡す方法のアイデアを持っている場合、私はお願いしたいと思い

TypeError: a is undefined 

モリスチャートへの長方形配列。通常は、クラスを使用してデータを渡します。しかし、この場合、渡す必要のあるデータの構造は動的です。

ありがとうございます。

+0

あなたは、リクエストボディに任意のデータを渡しているように見えるしていないいずれかの方法で、応答はそうのようなJSON形式の場合: 'data:" "、' 応答が正常に取得できますか?おそらく、データが返送されていることを確認するための応答を 'console.log'しようとします。 – nikjohn

+0

hmmm。これは、関数SHOW_GRAPH()がパラメータを必要としないためです。 – lulutanseco

+1

レスポンスは良いですか?おそらく、データが返送されていることを確認するための応答を 'console.log'しようとします。 'SHOW_GRAPH()'が本体を必要としない 'POST'要求ハンドラであれば、正常に動作するはずですが、どちらの方法でも返されるデータがあることを確認してください。実際のデータがないため、スニペットをデバッグするのは難しいです – nikjohn

答えて

2

ここでは、POSTリクエストの本文にデータを渡していないようです。これにリクエスト本体が必要ない場合は、代わりにGETリクエストと考える必要があります。その後

{ "data": { 
    "d": { 
     [ a: []], 
     [ a: []], 
     [ a: []], 
     [ a: []], 
     [ a: []] 
     } 
} 

あなたが理想的なので、同様に二回ループする必要があります:

data.d.forEach(function(data) { 
    Morris.Area({ 

       element: 'myfirstchart', 
       data:data, 
       xkey: data.a.forEach(function(item){ 
          //Do what you want with this array 
         }), 
       ykeys: [data], 
       hideHover: 'auto', 
       resize: true,      

      }) 
      }; 
}); 
関連する問題