ハイチャート プロジェクトに問題があり、チャート オプションがデータベースに保存されています。次のコードを使用してチャートに印刷しています。サンプルコードを使用して問題を説明しましょう。
echo 'var options69 = '.$highcharts_json_options;
echo PHP_EOL;
echo 'var options69_func = '. json_encode( $functions);
echo PHP_EOL;
echo '$(document).ready(function() {';
echo PHP_EOL;
echo ' chart69 = new Highcharts.Chart(
$.extend(true, options69, options69_func)
);';
echo PHP_EOL;
echo '});';
この問題は$functions
、正しい JavaScript オブジェクトに変換されません。これは $functions のコードの例です
$functions = array(
'chart' => array(
'events' => array(
'click' => "function(){inboxMenu(this.options);}"
)
),
'tooltip' => array(
'formatter' => "function(){
return '<b>'+ this.series.name + ':</b>'+ this.y;
}"
)
);
現在、 json_encode( $functions)
出力は
var options69_func = {
"chart": {
"events": {
"click": "function(){inboxMenu(this.options);}"
}
},
"tooltip": {
"formatter": "function(){return '<b>'+ this.series.name + ':<\/b>'+ this.y;}"
}
}
しかし、私は値var options69_func
が必要です
var options69_func = {
"chart": {
"events": {
"click": function(){
inboxMenu(this.options);
}
}
},
"tooltip": {
"formatter": function(){
return '<b>'+ this.series.name + ':<\/b>'+ this.y;
}
}
}
次に、チャートclick event
またはformatter
作品のみ..これらの値は、サーバーデータベースから動的に取得されます。にコールバック関数を追加できますjson_encode
か?
PHPで生成されたjsコードをhttp://jsfiddle.net/u9W6X/に追加しました
クライアント側で eval 関数を使用したくない..