2017-09-11 12 views
1

SQLデータベースの動的データをC3チャートに取り込もうとしています。私はときに私のjavascriptは私がpageloadに次のJavaScriptを使用しますが、エラーを取得していますJSONデータを使用したC3チャート

[{"y":"5","item1":"Lion Wharf"},{"y":"31","item1":"Millbrook Park P2"},{"y":"84","item1":"Pinfield Meadows"}] 

次のようなJSON文字列を生成によって呼び出さ

 $.ajax({ 
      type: "POST", 
      url: "additions.aspx/GetPiechartData", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: "true", 
      cache: "false", 
      success: function (result) { 
       OnSuccess(result.d); 
      }, 
      error: function (xhr, status, error) { 
       alert(error); 
      } 
     }); 

     function OnSuccess(response) { 
      var abc = JSON.stringify(response); 
      window.location.replace(response); 
      var chart = c3.generate({ 
       bindto: '#chart-var-project', 
       data: { 
        json: response, 
        keys: { 
         x: 'y', 
         value: ['item1'] 
        }, 
        type: 'donut' 
       }, 
       donut: { 
        title: "Approval", 
        width: 40, 
        label: { 
         show: false 
        } 
       }, 
       color: { 
        pattern: ["#ff9800", "#78c350", "#f7531f"] 
       } 
     }); 
「a.forEachを機能ではない」というC#のWebメソッドを持っています

私はJavascriptを使い慣れていて、ここにポインタを本当に感謝します

ありがとう!

答えて

0

ドーナツグラフタイプのC3の予想されるフォーマットに合わせてjsonレスポンスをフォーマットする必要があります。

function OnSuccess(response) { 
    var data = {}; 
    var value = []; 
    JSON.parse(response).forEach(function(d) { 
     data[d.item1] = d.y; 
     value.push(d.item1); 
    }); 

    c3.generate({ 
       data: { 
        json: [data], 
        keys: { 
         value : value 
        }, 
        type: 'donut' 
       }, 
       donut: { 
        title: "Approval", 
        width: 40, 
        label: { 
         show: false 
        } 
       }, 
       color: { 
        pattern: ["#ff9800", "#78c350", "#f7531f"] 
       } 
     }) 
} 

サーバーが正常に出力文字列なので、JSONオブジェクトにこの文字列を変換しますJSON.parseを使用します。

+0

私はまだ同じエラーが返ってきます... –

+0

'c3.generate'の' data.json'パラメータを見て、 'response'を' data'に置き換えました –

+0

ありがとう、私それを逃した。だから今私はエラーを取得しない... 'item1'の100%を表示するだけのグラフ。列とキーを定義する必要はありますか? –

関連する問題