životní cyklus a formulářová komponenta

sejmor
Člen | 63
+
0
-

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
+
+1
-

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í.

sejmor
Člen | 63
+
0
-

Děkuji … to mě taky napadlo … asi to bude nejjednodušší :)