0

全体的な問題:さまざまな JSON ファイルに年単位のデータがあります。JSON ファイルごとに、Web ページに表示される 3 つのグラフを生成します。これで、ユーザーは別の年を選択できるようになり、グラフはその特定の年のデータに基づいて更新されるはずです。

私が行ったこと:指定された JSON を解析し、Google チャートの要件に従ってデータを準備し、それらのチャートを描画する initialize_charts() という関数を作成しました。この関数を google.setOnLoadCallback から呼び出しています。(現在、jsonファイル名をハードコードしています)。

主な問題:ユーザーが別の年の JSON ファイルを選択したときに、チャートを再レンダリングする方法がわかりません。どういうわけか、ファイル名パラメーターを google.setOnLoadCallback または google.load に渡して、initialize_chart がこの新しいデータを読み取り、グラフを再レンダリングできるようにする必要があります。しかし、どうすればよいかわかりません。

私が試したこと:次のように initialize というラッパー関数を書いてみました:

google.setOnLoadCallback(initialize);

function initialize()
{
  initialize_charts("year1.json");
}

そのため、最初にロードするときに year1.json データをロードします。次に、onclick イベントに対して onclick="initialize_charts("year2.json") を呼び出しました。しかし、それは機能しません。チャート (div 要素) のプレースホルダーがチャート自体に置き換えられていると思います。したがって、できません。それらのプレースホルダーを見つけます。

これについて何か助けていただければ幸いです。詳細情報または私のコードが必要な場合は、喜んで提供します。私は過去2日間からこれにこだわっています:-(

4

1 に答える 1

0

解決しました。このコードを使用すると:

google.setOnLoadCallback(function() {
    initialize_charts('year1.json');
});

function initialize_charts(filename)
{
   ..... 
}

最初の読み込みの後、データ ソースを変更する必要がある場合は、他の json ファイル (例: year2.json) を指定して initialize_charts を呼び出すだけです。

于 2013-01-08T01:01:18.850 に答える