2016-08-31 75 views
1

我需要使用Morris Charts來繪製動態數組。陣列是一個動態矩形陣列(與列的數目可變),看起來像這樣:使用JSON將動態數組傳遞給Morris圖表

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 

我想問一下,如果任何人有一個想法如何正確地傳遞矩陣到Morris圖表。通常,我只使用一個類來傳遞數據。但是,在這種情況下,我需要傳遞的數據結構是動態的。

在此先感謝。

+0

你似乎並不被路過的任何數據請求體: 'data:「」,' 你有沒有得到好的答覆?也許嘗試和'console.log'響應以確保數據被髮回。 – nikjohn

+0

嗯。這是因爲函數SHOW_GRAPH()不需要參數。 – lulutanseco

+1

你的回答很好嗎?也許嘗試和'console.log'響應以確保數據被髮回。如果'SHOW_GRAPH()'是一個不需要body的POST請求處理程序,那麼它應該可以正常工作,但無論如何,確保有數據返回。調試代碼片段很難,因爲那裏沒有實際的數據 – nikjohn

回答

2

在這裏,您似乎沒有在POST請求正文中傳遞任何數據。如果這不需要請求主體,則應該考慮將其作爲GET請求。無論哪種方式,如果響應是JSON格式像這樣:

{ "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,      

      }) 
      }; 
});