bug/feature request – dva formy najednou

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

Version 0.9 rev. 464 July 24, 2009

jak jsem jiz natukl zde , narazil jsem na problem dvou formularu na strance. jeden mam v hlavicce, druhy v contentu. problem je, ze pri overovani isSubmitted druheho formu prijdu o defaultni hodnoty, protoze form se vyhodnoti take jako odeslany a u hidden policek tak ztratim to co jsem jim nastavil (nebralo mi to ani pres setDefaults).

jako docasne reseni jsem predradil podminku if($form3['reservation']->isSubmittedBy()) { podmince if($form3->isSubmitted() && $form3->isValid()) {, ale bylo by moc hezke, kdyby isSubmitted reagovalo opravdu jen na formular na nejz se ptam a ne na jakekoli POST hodnoty.

prosim prosim smutne koukam (pripadne me prosim vyvedte z omylu a poradte kde delam chybu)

greenghost
Člen | 7
+
0
-

tak nevermind, koukam ze to nette umi – $form->addTracker('nazevformu'); .. jen by asi nebylo od veci to pridat do navodu, protoze sem to nasel az pri cteni kodu tridy Form :-P

Jan Tvrdík
Nette guru | 2595
+
0
-

K čemu potřebuješ podmínku if($form3['reservation']->isSubmittedBy()?
Používáš celé Nette nebo jenom formuláře?

Editoval Jan Tvrdík (28. 7. 2009 18:17)

greenghost
Člen | 7
+
0
-

pouzivam vse a podminkou issubmittedby jsem obchazel to, ze odeslani jednoho formu zpusobovalo vraceni true i u druheho formu ve fci issubmitted…

ale ted uz opravdu neni co resit, ten tracker to resi. jen by podle me nebylo od veci aby se pridaval sam defaultne :-P usetri to mozna par lidem par hodin

romansklenar
Člen | 655
+
0
-

Měl jsem za to, že je to třeba jen pří použití GETu.

greenghost
Člen | 7
+
0
-

to nevim. ja to dnes resil od dvanacti temer do sesti, jak jsem se prokousaval ruznymi variantami. problem byl proste v tom, ze druhy form bere hodnoty z prvniho, ale prvni zustava. nektere jsem potreboval prenest pres hidden, ale ty se mi za zlate prase nevyplnovaly – mizely prave pri kontrole isSubmitted u druheho formu. tam si nette asi myslelo, ze jsem odeslal ten druhy tak mi s usmevem na tvari ty hodnoty nastavilo na nulove (netusim proc, ale nefungovalo ani setDefaults). priznam se ze pet minut pred objevenim trackeru sem se na to vykaslal a ty dva hiddeny napsal do kodu rucne natvrdo a hodnoty jim nastavil pres curly brackets :-D (a tak to i necham, jinak notebook sezeru natrikrat – uz ted se*u atomovy hriby :-P)

kravčo
Člen | 721
+
0
-

greenghost napsal(a):

pouzivam vse …

Pokiaľ používaš všetko a teda vo svojich aplikáciách používaš triedy Application & Presenter, odporúčam pozrieť sa na AppForm, továrničky a obsluhu formulárov udalosťami…

jasir
Člen | 746
+
0
-

greenghost napsal(a): pouzivam vse…

Ale nějak blbě. Normálně si uděláš jeden form s názvem form1 v BasePresenteru (ten co chceš mít vsech stránkách), pak si v jednotlivých presenterech definuješ kolik chceš formů pod jakýmikoli názvy a nic se nikde tlouct nebude. Postni sem kód, protože něco musí být špatně, Nette tohle všechno řeší a funguje to dobře. Bez kódu se těžko něčeho dobereme.

Editoval jasir (29. 7. 2009 1:42)

Jod
Člen | 701
+
0
-

Mne fungovali dva Formy, keď som používal isSubmittedBy[‚tlacitko‘], ale na toto určite AppForm

David Grudl
Nette Core | 8228
+
0
-

Upravil jsem Form (nikoliv AppForm), aby tracker přidával automaticky, je-li formulář pojmenován.

greenghost
Člen | 7
+
0
-

diky davide, mas mou nehynouci vdecnost… ale ted zas budu muset ten addTracker s nazvem formu vyndat z kodu, aby se netloukly :-D v ramci toho bych chtel poprosit – neslo by ho pridat automaticky jen kdyz ho nevytvorim rucne? je to mozna zbytecne a mel bych nebyt liny, ale verim tomu ze tenhle problem by nastal u vice lidi, kteri to pak budou s inovaci nette dohledavat… klani se a liba ruce

a ja jdu zjistit co je to ten appform (holt novacek no)

edit: v navaznosti na to me ted napada jak se asi form zachova kdyz vyrobim dva trackery? co jsem koukal do kodu tak jsem nenasel zadnou ochranu a kdyz tam budou dva hiddeny s stejnym nazvem name="_form_" tak bude nevalidni kod… nicmene jinak by to snad vadit nemelo (z formu se odesle ta druha hodnota, tzn ta stejna jako je rucne vytvoreny tracker, ktery prepsal ten automaticky vytvoreny)

Editoval greenghost (4. 8. 2009 11:24)

David Grudl
Nette Core | 8228
+
0
-

Dva trackery přidat nejde, proto to zařve i teď (což jsem si neuvědomil). Ale jsem na vážkách, jestli chování zpětně kompatibilně upravit, nebo raději nechat programátory smazat jeden řádek kódu. První je pohodlnější, druhé je čistější…

greenghost
Člen | 7
+
0
-

vidis, to mi nedoslo ze to vlastne zarve na existenci stejneho nazvu prvku. ja koukal do kodu jen na tracker a tam to reseno neni (coz je samozrejme, lepsi je resit to na urovni pridani prvku)

s tim druhym trackerem – tot otazka. urcite pokud to nechas takhle tak by nebylo spatne to napsat do poznamek k vydani at lidi nehledaji proc uz prvek existuje.. urcite se najde nekdo kdo necte forum