Validácia dynamicky napĺňaného selectboxu – NULL hodnota po odoslaní

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
JakubJarabica
Gold Partner | 184
+
0
-

Zdravím, mám formulár s datepickerom a podarilo sa mi na onSelect event pickeru navešať handle JSON, ktorý pre daný dátum vytiahne voľné termíny(každý deň má iné otváracie hodiny + robí sa prienik s už zajednanými termínmi pre daný dátum) a naplní tento select.

Problém je však v odoslaní formulára. Vytváranie selectu:

<?php
$form->addSelect('zaciatok', 'Začiatok vyšetrenia:', array('- vyberte najskôr dátum -'))
->addRule(FORM::FILLED, 'Začiatok vyšetrenia musí byť vybraný!')
->skipFirst();
?>

Po odoslaní formulára mám hodnotu v „zaciatok“ NULL. Myslím, že keby to poľe, ktoré získam z handle JSONom, dám miesto toho môjho arrayu s textom v definícii selectu, tak by to zobralo. Ale to nemôžem urobiť, jednak to nie je pekné a jednak by to bolo zbytočne náročné na výkon a jednak oveľa zložitejšie. Dá sa to nejako rozumne obísť? Aj keby stratím akúkoľvek validáciu – obávam sa, že to bude nejaké Nette-natívne in_array, aby sa selectu nepodstrčila iná hodnota ako je medzi definovanými, ale v tomto prípade na to hľadieť nechcem, zvalidujem to aj tak v submite formulára vzhľadom na dátum. Díky :o)

JakubJarabica
Gold Partner | 184
+
0
-

Okej, prišiel som na to. Mimochodom, v API nefunguje vyhľadávanie, našiel som metódu getRawValue, ktorá získava hodnotu pred „očistením“. Pekne to je popísané tu: 1725-nahravani-radiolistu-ajaxove-podle-vyberu#p28434, keby niekomu vyhovovalo iné riešenie.