Jak a kde probíhá znovunačtení hodnot do formuláře?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
bumprask
Člen | 59
+
0
-

Nette formuláře zajišťují znovunačtení již vyplněných hodnot ve formuláři například při chybě, nebo při ->redirect(‚this‘). Jak tento proces probíhá a kdy a pomocí jaký metod?

Majkl578
Moderator | 1364
+
0
-

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.

bumprask
Člen | 59
+
0
-

A věděl by jsi které konkrétní metody v API zajišťují toto chování?

castamir
Člen | 629
+
0
-

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

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.

bumprask
Člen | 59
+
0
-

bezva, děkuju :-)