životní cyklus a formulářová komponenta
- sejmor
- Člen | 63
Zdravím všechny,
Poraďte jak mám obecně řešit následující:
Mám presenter a v něm metody:
<?php
action()
render()
createComponentParametryForm()
parametryFormSubmitted(Form $form)
?>
v action se mi do proměnné parametry natáhne nějaký seznam parametrů z DB, který iteruju v createComponentParametryForm() a generuju tak políčka formuláře, který v šabloně vykreslím.
Nyní uživatel ve formuláři políčka zakliká, odešle a já v metodě parametryFormSubmitted(Form $form) potřebuju přegenerovat ten seznam parametrů a zůžit výběr políček generovaného formuláře. Není nutný AJAX – takže normálním komplet překreslením.
Problém je, že to vypadá že po odeslání to proběhne v následujícím pořadí:
<?php
action()
createComponentParametryForm()
parametryFormSubmitted(Form $form)
render()
?>
No a já potřebuju samozřejmě to zpracování formuláře před vytvářením komponenty, protože potřebuji mít vyfiltrovaný seznam parametrů, který budu ve formulářové komponentě zobrazovat. Jak to elegantně vyřešit ?
Můžu přistoupit přímo k POST datům v action(), ale to mi přijde takový divný.
Jak to řešíte ?
- duke
- Člen | 650
Doporučuji po zpracování formuláře přesměrovat a zúžený výpis položek realizovat až v následujícím requestu. Tzn. při zpracování formuláře dojde k sestavení hodnot filtrovacích kriterií do parametrů akce, na kterou se následně přesměruje. Je-li kriterií příliš mnoho pro použití parametrů akce, lze je schovat do session a akci poslat např. jen identifikátor konkrétního filtrování (v session pak k parametrům přes tento identifikátor přistupuješ). V případě použití session je pak ale záhodno řešit i občasné promazávání starších filtrování.