bug/feature request – dva formy najednou
- greenghost
- Člen | 7
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
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
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
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
- greenghost
- Člen | 7
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)
- jasir
- Člen | 746
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)
- David Grudl
- Nette Core | 8228
Upravil jsem Form (nikoliv AppForm), aby tracker přidával automaticky, je-li formulář pojmenován.
- greenghost
- Člen | 7
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
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
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