Dynamicky select ve formulari v nette 3
- Hugo
- Člen | 6
Zdravim,
jak nejlip vyresit dynamicky vygenerovany select ve formulari ?
onError hazi chybu „Please select a valid option“
Zkousel jsem odchytit formular pred validaci v eventu „onValidate“ a
nejak tu hodnotu tam hacknout.
$form->getHttpData() mi vrati hodnotu selectu ale nenasel jsem zpusob
jak ji forcnout tak aby ji pak nasledne vratila i metoda
$form->getData();
za pripadne nasmerovani dekuji
h.
- Hugo
- Člen | 6
Šaman napsal(a):
Pošli kód, jinak netušíme kde máš chybu.
Kod je bohuzel moc slozity a dlouhy na to abych to tady daval. Pointa byla
v tom ze jsem ve formulari
mel select ktery mel jenom jednu hodnotu a zbytek se generoval pres javascript.
Nette si po odeslani formulare kontroluje jestli select nema hodnotu mimo
puvodne zadany staticky rozsah – predpokladam ze se jedna o nejake
zabezpeceni. Reseni bylo vypnout automatickou validaci na select a resit si
validovani rucne. Ted to funguje :)
h.
- Šaman
- Člen | 2667
To není čisté řešení. $form->getHttpData()
vrací
surová data, $form->getData()
právě hlídají, že ti tam
někdo nepodstrčil možnost mimo rozsah.
Řeší se to tak, že se znovu nastaví dynamické možnosti
v createComponent, nebo v action/handle metodě (tedy i po odeslání
formuláře tam ty možnosti jsou). Je také možné pak formulář předvyplnit
(třeba v případě editačního formuláře).
- Hugo
- Člen | 6
Šaman napsal(a):
To není čisté řešení.
$form->getHttpData()
vrací surová data,$form->getData()
právě hlídají, že ti tam někdo nepodstrčil možnost mimo rozsah.
Řeší se to tak, že se znovu nastaví dynamické možnosti v createComponent, nebo v action/handle metodě (tedy i po odeslání formuláře tam ty možnosti jsou). Je také možné pak formulář předvyplnit (třeba v případě editačního formuláře).
dik za nasmerovani, mrknu na to :)
h.