Vybrána volba alespoň jednoho ze selectů

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

Zdravím,

mám 2 selecty:

        $form->addSelect('nadrizeny', 'Nadřízený:', $dadrizenyArray );
        $form->addSelect('podrizery', 'Podřízený:', $podrizeryArray );

Já bych potřeboval aby uživatel vybral volbu alespoň z jednoto selectu. Jak na to?

Pavel Kravčík
Člen | 1205
+
+2
-

Píšu z hlavy, ale co něco podobného? Podmínka, jestli je druhý vyplněný a když není tak se zeptat jestli je první a pokud není ani ten → required.

$form->addSelect('podrizery', 'Podřízený:', $podrizeryArray )
	->addCondition(~Form::FILLED)
		->addConditionOn($form['nadrizeny'], ~Form::FILLED)
			->setRequired('Vyplňte alespoň jeden')
		->endCondition()
	->endCondition();
greeny
Člen | 405
+
0
-

@kzk_cz akorát místo setRequired tam bude addRule($form::FILLED)

Pavel Kravčík
Člen | 1205
+
0
-

@greeny: Copypaste z nejnovější dokumentace. Předpokládám, že to bude fungovat stejně a jen to nastaví ty „data“ pro kontrolu podmínek.

Ale osobně taky všude používám AddRule(). Šlo spíš o tu pointu s AddConditionOn().

EDIT: Respektive mi přišlo zbytečné to nějak studovat, když má tázatel 400+ příspěvků. Tak něco málo o Nette už ví. :)

Editoval kzk_cz (10. 3. 2015 15:45)

David Matějka
Moderator | 6445
+
0
-

Jo, setRequired by melo fungovat stejne.

Jen je zbytecny to prvni addCondition(~Form::FILLED) a vlastne i endCondition, jelikoz tam (zatim) neni zadne dalsi vetveni

Pavel Kravčík
Člen | 1205
+
0
-

@DavidMatějka: Ale když smažu to první addCondition(), tak přece může nastat situace, že první bude prázdný a druhý plný. A neprojde to. Což je podle zadání špatně, jestli to chápu.

David Matějka
Moderator | 6445
+
0
-

Kdyz bude druhy plny, tak se preci splni validacni pravidlo nastavene pres setRequired a hlaska se nezobrazi.

Pavel Kravčík
Člen | 1205
+
0
-

hloupej kzk, hloupej

motorcb
Člen | 552
+
0
-

Jak by tedy měl vypadat funkční kód?

Pavel Kravčík
Člen | 1205
+
0
-

Fungují všechny tři varianty. Jen ten můj je trapnější. :) Však máš 400 příspěvků, to už o Nette něco málo musíš vědět, ne? :)