Jak a kde probíhá znovunačtení hodnot do formuláře?
- Majkl578
- Moderator | 1364
bumprask napsal(a):
při chybě
Princip je jednoduchý. Obdržená data jsou načtena do jednotlivých políček formu vždy, ať už šlo o úspěšné nebo neúspěšné odeslání. Při neúspěšném tam zůstanou a použijí se při vykreslení. Pokud chceš naopak předvyplnit prázdný formulář, použiješ setDefaults, což v důsledku také tato políčka naplní, pokud formulář nebyl odeslán, kdy by to zjevně nebylo žádoucí, jelikož nás zajímají data odeslaná uživatelem (ale nevyvolá události, to se děje pouze pokud formulář obdrží signál, že byl odeslán).
při ->redirect(‚this‘)
To nikoliv.
- castamir
- Člen | 629
nad políčkem: setDefaultValue, nad celým formulářem setDefaults. Ale to si ostatně dokážeš najít i sám, nebo ne? API dokumentace tu přeci je ;)
Doporučuji si projít dokumentaci o formulářích.
- bumprask
- Člen | 59
Zkusím popsat situaci o kterou mi jde:
Po odeslání každého webového formuláře se přeci předají dalšímu skriptu (stránce) hodnoty pomocí POST či GET a ty se dále zpracovávají. Představme si teď Nette formulář s nějakými validačními pravidli, pokud se pokusíme odeslat formulář, který není zcela vyplněn, po odeslání musí NĚKDE dojít k zpracování hodnot z POST (GET) a vyhodnocení zda-li byl formulář vyplněn správně. Pokud nebyl formulář vyplněn správně Nette musí NĚKDE a NĚJAK vzít již správně vyplněná data formuláře, znovu je dosadit do value hodnot inputu a nahlásit chybu. Bez tohoto mechanizmu by jsme při chybě dostali opět prázdný formulář a ztratili by jsme již ty správně vyplněná data.
Moje otázka je tedy o tom jak, kdy a kde probíhá onen proces znovunaplnění již vyplněných hodnot formuláře při chybě? Jelikož se tak děje automaticky.