たまに、Web上にグラフ出すのにOpenFlashChartを使う事がある。 世の中のグラフ描画するライブラリて、だいたいモダンなブラウザじゃないと動かないので・・・。 古めのブラウザ使ってるところ(まぁIE8とか)だと、Flashで書いてくれるコレが何かと手っ取り早い。

グラフにしたいデータをJsonで返すWebAPIを作って使うのが楽でいいんだけど、パラメータのところではまったのでメモ。

OpenFlashChartのデータファイル指定で、WebAPIのURLを↓の感じで指定する。

swfobject.embedSWF(
"open-flash-chart.swf", "my_chart",
"600", "250", "9.0.0", "expressInstall.swf",
{ "data-file": "/api/somedata/100?hoge=10&year=2013" }
);

↑のURL指定だと何故かクエリ文字列の&以降が無視されたURLでリクエストされる。理由はナゾ。いろいろ試して、&をURLエンコードした「%26」を代わりに使うと上手くいく模様。↓上手く行く書き方。

swfobject.embedSWF(
"open-flash-chart.swf", "my_chart",
"600", "250", "9.0.0", "expressInstall.swf",
{ "data-file": "/api/somedata/100?hoge=10%26year=2013" }
);
ハマった。