docs icon indicating copy to clipboard operation
docs copied to clipboard

Co se děje při submitu formuláře

Open janmottl opened this issue 7 years ago • 5 comments

v dokumentaci mi chybí popis toho co se děje při submitu formuláře. Koukal jsem do životního cyklu presenteru a nemohl jsem tam najít co jsem potřeboval vědět. Chvíli mi trvalo než mi došlo, že se při sumbitu vytvoří formulář nezávisle na renderu a při get se vytvoří formulář během renderování. Hodilo by se doplnění formuláře do životního cyklu presenteru nebo zvlášni životní cyklus formuláře,

Kvituji vylepšení dokumentace za cca poslední rok. Za dobu co dělám s Nette tak se potěšeně zlepšila.

Honza

janmottl avatar Sep 07 '17 09:09 janmottl

To nas moc tesi.


Musim se priznat, ze jsem to z toho popisku uplne nepochopil. Co by podle tebe melo byt v dokumentaci?

f3l1x avatar Sep 07 '17 09:09 f3l1x

Dělám s weby a Nette krátce. Chybí mi tam popis co se děje při POSTu. Domnívám se, že při POSTu je to nějak takto: startup action<Action> handle<Signal> createComponent<formComponent> onSubmit onSuccess nebo onError (redirect nebo redraw je na aplikaci a spousti se vetev before render, render... shutdown

janmottl avatar Sep 07 '17 09:09 janmottl

To flow co jsi popsal je spravne, akorat si nejsem jisty, jestli by to melo byt v popisu formulare. Resp. dost toho je obsazeno v zivotnim cyklu presenteru. Myslis, ze stoji za to, to davat jeste nekam jinam?

f3l1x avatar Dec 07 '17 15:12 f3l1x

Ano, do zivotniho cyklu presenteru by se to hodilo. Taky jsem to tam hledal, kdyz jsem pred vice nez rokem dumal nad tim, proc mi fomular nefunguje a createComponent se vola pred render. V zivotnim cyklu by se hodilo znazorneni kdy se vola createComponent a mozna v textu naznacit na ktere komponenty:

  • v pripade POST se zrejme createComponent vola pouze na postovanou komponentu.
  • po render se createComponent vola podle sablony. V pripade snippetu tak na nezijici komponenty v invalidovanych snippetech. Pokud se po postu zmenila db data nad ramec postovanych dat,, tak je nutne nastavit formulari znovu hodnoty interni metodou setValues(). Pokud se zmenila struktura formulare, je treba komponentu znovu vytvorit, napr. removeComponent() po ulozeni formulare.

janmottl avatar Dec 09 '17 08:12 janmottl

Ahoj,

dnes jsem si také všiml, že srozumitelnější popis jak formuláře pracují - takový, aby to Nette nováček snadno pochopil by byl potřeba. On to nakonec pokusy a omyly každý rozlouskne, ale zbytečně se na to spálí mnoho času. Zkusím časem nějaký popis připravit a dát do PR.

mildabre avatar Apr 16 '23 00:04 mildabre