ATK4 ページから、このような JavaScript ヘルパー ファイルを使用して jqplot を呼び出すことができます
ページ上
$chart = $p->add('jqplot', null, 'chart1');
$chart->setSeries(array(10,20,15));
このように jqplot.php を定義します
class jqplot extends View {
function render()
{
$plot=$this->js(true)->univ()->jqplot($this->series, $this->opts);
parent::render();
return $this;
}
}
jsヘルパーファイルで、php呼び出しをjavascriptにリンクします
$.each({
jqplot: function(series, opts){
console.log('jqplot series',series);
console.log('jqplot options',opts);
$plot=$.jqplot(this.jquery.attr("id"), series, opts);
return $plot;
}
}
ページに 1 つのグラフがあり、ajaxec 呼び出しでそれをリロードすると正常に動作しますが、複数のグラフが隣り合っている場合、最初のグラフのみが問題なく、リロードを呼び出すとその隣のグラフが完全に消えます。
私が本当にやりたいことは、チャートで jqplot replot 関数を呼び出して、ページから新しいデータを渡すことですが、どうすればこれを行うことができますか? jshelper の $plot オブジェクトには JavaScript オブジェクトが保持されており、replot を呼び出すにはこのオブジェクトが必要です。
最初にJavaScript連想配列で作成したときにオブジェクトを保存し、replotを呼び出してIDを検索し、見つかった場合はオブジェクトでreplotを呼び出すことができると考えていますが、このコードがどのように見えるか、または私が正しいかどうかはわかりませんアプローチしてください。
よろしくお願いいたします。