Tok aplikace pri zpracovani formulare
- Chuck777
- Člen | 10
Ahoj,
Mam presenter a ten obsahuje :
- actionDefault
- createComponent pro form1
- createComponent pro form2
- call back pro form1
- call back pro form2
View obsahuje html a uprostred je snippet, ktery obsahuje form1 a form2.
- Formulare form1 a form2 pracuji nad stejnymy daty. Tudiz akce z form1 ovlivni podobu(obsah selectu) jak form1, tak i form2.
Kdyz pres Ajax zpracuji akci z form1 tak tok aplikace je nasledujici :
- actionDefault
- createComponent pro form1
- call back pro form1 → invaliduji snippet
- createComponent pro form2
Problem je ten, ze navraceny vysledek obsahuje aktualni informace pro form2 a stare informace pro form1.
Jak ciste zajistit, aby se ve snippetu nebo po zpracovani akce pregenerovalo vse co chci.
Diky, Chuck777 :)
PS : Jsem s Nette porad v zacatcich, tak me nekamenujte :)
- Chuck777
- Člen | 10
Ahoj,
diky za rychlou pomoc.
Takze, jestli to chapu dobre :
- createComponent pro form1 – vytvori jen model formulare
a pak ve „finale“ se vola renderDefault(). Ta nacte data z db a naplni jimi form.
Jde vytvorit render metoda pro kazdy prvek zvlast? neco jako renderForm1 → to jsem nikde zatim nenasel.
- natrim
- Člen | 73
render je pro akce viz Životní cyklus presenteru
render se provadi pro vykresleni a to je doba kdy chces naplnit sablonu daty – tedy i data do formu
proste udelas neco podobneho
<?php
public function renderDefault(){
$row1 = $this->model->getDataForForm1();
$row2 = $this->model->getDataForForm2();
$this['form1']->setDefaultValues($row1);
$this['form2']->setDefaultValues($row2);
}
?>
- Chuck777
- Člen | 10
Parada s timto se to kompletne resi.
Jeste nas napadla uprava :
- V action nactu data pro form1 a form2.
- createComponentForm1 – nastavim data pro form1 (ty se vyuziji pro kontrolu odeslaneho formu)
- createComponentForm2 – nastavim data pro form2
- call back form1 – muze a nemusi probehnout
- render – zde znovu priradim data do formularu. V pripade ze probehl call back form1, data se ve formulari1 zaktualizuji.
Je to spravna vize?