Ознакомьтесь с примерами в ATK4 Codepad. http://agiletoolkit.org/codepad/gui/grid
Изменить: это фрагмент одной из моих страниц. Может быть, вы найдете это полезным. Идея заключается в том, что вы фактически генерируете JavaScript внутри этого оператора IF, а затем JavaScript отправляется обратно в ваш браузер, который затем может сделать еще один запрос на что-то (перезагрузить существующий объект, создать новый, перенаправить куда-то и т. д.).
...
if($_GET['ticket']){
// Join this report with selected ticket
$this->grid->model->addToTicket($_GET['ticket']);
// Reload
$this->js(null,array(
$x->js()->reload(),
$this->js()->univ()->successMessage('Successfully saved')
))->execute();
}
...
С помощью $_GET['ticket'] вы получаете идентификатор записи в сетке, в которой вы нажали кнопку "Добавить в тикет". $x — это какой-то другой объект на этой странице, например, какая-то форма, поле, вкладка или другая сетка. С $this->grid->model вы получаете ссылку на модель, связанную с этой сеткой, и в этой модели у меня есть определенное действие/метод - addToTicket, который что-то делает с базой данных.
Вы также можете перенаправить на другую страницу с помощью $this->js()->redirect() или $this->js()->location() и т. д. По сути, вы можете делать все, что хотите, но все это должно генерировать JavaScript как результат или инструкции для вашего браузера, что делать дальше.
И не забудьте добавить ->execute() в конце! Это остановит дальнейший анализ вашей страницы и мгновенно сгенерирует ответ JS.
person
DarkSide
schedule
19.10.2012