Со страницы ATK4 я могу вызвать jqplot, используя вспомогательный файл javascript, такой как
на странице
$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;
}
}
Если у меня есть одна диаграмма на странице и перезагрузить ее с помощью вызова ajaxec, она работает нормально, но если у меня есть несколько диаграмм рядом друг с другом, только первая будет в порядке, а та, что рядом с ней, полностью исчезнет, если я позвоню перезагрузить.
Что я действительно хочу сделать, так это вызвать на графике функцию реплотирования jqplot и передать ей новые данные со страницы, но как я могу это сделать? Объект $ plot в jshelper содержит объект javascript, и мне нужен этот объект для вызова replot.
Я думаю, что, может быть, я смогу сохранить объект при первом создании в ассоциативном массиве javascript, а затем, когда я вызываю replot, ищу идентификатор и, если найден, вызываю replot для объекта, но не уверен, как выглядит этот код или иметь правильный подход, поэтому любая помощь приветствуется.
Заранее благодарим за помощь.