Přenášení obsahu formuláře přes session při použití tlačítka back
- Azim
- Člen | 41
Zdravim.
Mam formular, ktery ajaxove filtruje obsah tabulky pod formularem. Pri kliknuti
na radek tabulky se pres js otevre stranka s detaily radku. Potrebuji
implementovat nasledujici funkcionalitu – Pri kliknuti na back potrebuji, aby
se data, ktera byla pred kliknutim na radek tabulky ve formulari, obnovila, tj.
zachovat filtr.
Diky za rady
- Azim
- Člen | 41
Mam nasledujici kod:
public function renderDefault($filter = NULL)
{
if ($this->isAjax())
{
$result = $this->model->getProjectsByFilter($this->payload->filter);
$this->template->projects = $result;
$session = Environment::getSession('filter');
$this->template->form = $this['filterProjectForm'];
$this->template->form->setDefaults((array) $session->filter);
}
else
{
$this->template->projects = $this->model->getProjects();
}
}
public function filterProjectFormSubmitted(AppForm $form)
{
$entry = $form->getValues();
if (!$this->isAjax())
$this->redirect('this');
else {
$session = Environment::getSession('filter');
$session->filter = $entry;
$this->payload->filter = $entry;
$this->invalidateControl('projects');
}
}
teoreticky by to melo fungovat tak, ze pri vyplneni nejakeho pole formulare se ajaxem profiltruji projekty a zaroven se do session ulozi obsah filtru ve formulari a pri znovurenderovani stranky se do formu nactou hodnoty ze session, nicmene se tak nedeje. je mozne ze se ajax a session nemaji rady a pri ajaxovem pozadavku nedojde k ulozeni session, tj. problem by byl tady?
if (!$this->isAjax())
$this->redirect('this');
else {
$session = Environment::getSession('filter');
$session->filter = $entry;
$this->payload->filter = $entry;
$this->invalidateControl('projects');
}
diky za odpovedi