3

ここの例に基づいて円グラフを作成しようとしました

私のコントローラー (mycontroller/json) には、次のコードがあります。

public function json(){

$whatever = '{
"cols": [
    {"id":"","label":"Topping","pattern":"","type":"string"},
    {"id":"","label":"Slices","pattern":"","type":"number"}
  ],
"rows": [
    {"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
    {"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
    {"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
    {"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
    {"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
  ]
}';
echo $whatever;
}

私の見解では、次のコードがあります(部分的なコードが表示されています)

var jsonData = $.ajax({
    url: "<?= base_url()?>index.php/bunker/json",
    dataType:"json",
    async: false
    }).responseText;

// Create and populate the data table.
var popularCategory = google.visualization.DataTable(jsonData);
new google.visualization.PieChart(document.getElementById('category')).draw(popularCategory,
    {title:"Popularity by Category"});

最後に、「カテゴリ」という ID を持つ div があります。ただし、データが定義されていないというメッセージが常に表示されます。

firebug を使用して簡単にデバッグすると、エラーは発生しません。$whatever 変数も適切な JSON 形式として扱われます。私はここでどんな間違いを犯しましたか?

乾杯、

4

3 に答える 3

1

それ以外の:

var popularCategory = google.visualization.DataTable(jsonData);

絶対必要です:

var popularCategory = new google.visualization.DataTable(jsonData);
于 2013-05-02T02:08:22.080 に答える
0

php json エンコード機能を試してください:

echo json_encode($whatever);

また、ブラウザ コンソールは、php の print_r に似た「jsonData」変数を出力するため、必ず console.log(jsonData) の使用を開始してください。初めてjsonのフォーマットが正しくなることはないので、console.log(jsonData)機能は絶対にキラーです。

于 2013-05-01T19:04:12.553 に答える