2017-04-11 3 views
0

ボタンをクリックすると、ビューモデルからデータの配列を渡します。 d3.json関数では、json_encodeをviewmodelに対して使用して、JSONオブジェクトに変換します。私はページ上でそれを検査すると、それを変換しないが、私は取得していますJSONデータをd3.jsonに渡すときのエラー

"Uncaught SyntaxError: missing) after argument list".

誰かが私が間違っているのを教えすることはできますか?

d3.json("<?php echo json_encode($viewmodel) ?>", function(error,data){ 
     data.forEach(function(d) { 
      d.projectdate = parseDate(d.projectdate); 
      d.Cost = +d.Cost; 
     }); 

      var svg = d3.select("body") 
         .append("svg") 
         .attr("id", "chart") 
         .attr("width", w) 
         .attr("height", h); 

      svg.selectAll("bar") 
       .data(data) 
       .enter() 
       .append("rect") 
       .classed("bar", true) 
       .attr("x", 0) 
       .attr("y", function(d, i){ 
        return i * 20 
       }) 
       .attr("width", function(d,i){ 
        return d; 
       }) 
       .attr("height", 20); 


    }); 

答えて

1

d3.json()は、その最初のパラメータではなく、JSON文字列としてURLを期待しています。これはJSONをロードする特定のURLで指定されたファイルを要求します。

しかし、あなたの場合、data変数に直接JSONを直接割り当てる方が簡単かもしれません。

var data = JSON.parse("<?php echo json_encode($viewmodel) ?>"); 

data.forEach(function(d) { 
    //... 
}); 
関連する問題