pevna linka NEBO mobil – podmínky

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

Dobrý večer,

snažím se vytvořit můj první formulář v nette a nevím jak ho donutit k tomu, aby vyžadoval zadané buď číslo na pevnou linku nebo na mobil.

Zatím mám tohle, ale na té první podmínce bohužel nette zkolabuje (Component with name ‚mobil‘ does not exist).

<?php
$form->addText('telefon', 'Pevna linka:', 35)
	->addConditionOn($form['mobil'], Form::EQUAL, '')
	->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');

$form->addText('mobil', 'Mobil:', 35)
	->addConditionOn($form['telefon'], Form::EQUAL, '')
	->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
?>

Jak by se tato situace měla správně ošetřit?

redhead
Člen | 1313
+
0
-

a co takhle nejdriv vytvorit inputy, ulozit si je do promennych a az pote u nich nastavit podminky??

$tel = $form->addText('telefon', 'Pevna linka:', 35);

$mobil = $form->addText('mobil', 'Mobil:', 35);


$tel->addConditionOn($form['mobil'], Form::EQUAL, '')
        ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');

$mobil->addConditionOn($form['telefon'], Form::EQUAL, '')
        ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');
Ovce
Člen | 2
+
0
-

Děkuji za superrychlou a užitečnou odpověď, teď už to funguje tak, jak jsem si představoval :-)

Ondřej Mirtes
Člen | 1536
+
0
-

redhead napsal(a):

a co takhle nejdriv vytvorit inputy, ulozit si je do promennych a az pote u nich nastavit podminky??

$tel = $form->addText('telefon', 'Pevna linka:', 35);

$mobil = $form->addText('mobil', 'Mobil:', 35);


$tel->addConditionOn($form['mobil'], Form::EQUAL, '')
        ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');

$mobil->addConditionOn($form['telefon'], Form::EQUAL, '')
        ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');

Pro detekci NEvyplnění pole se používá negace:

$tel->addConditionOn($form['mobil'], ~Form::FILLED)
        ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');

$mobil->addConditionOn($form['telefon'], ~Form::FILLED)
        ->addRule(Form::FILLED, 'Vložte číslo na pevnou linku nebo na mobil.');