Zobrazení pole formu, jenom pokud jiné pole obsahuje určitý řetězec

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

Mám formulář dejme tomu dvou textových polí a z nich ukládám do databáze. Potřebuju, aby se mi druhé pole objevilo pouze tehdy, pokud text zadaný v prvním už v databázi je. Jde to nějak přes podmínky? Nebo to budu muset udělat na dva formuláře? Díky.

Myiyk
Člen | 321
+
-3
-

Stačí si to druhé pole vytvářet přes podmínku, že je záznam v databázi.

if($this->model->exist($id)) {
	$form->addText('druhePole');
}

Podmínku si pochopitelně musíš upravit dle tvého ověřování.

uncanny
Člen | 19
+
0
-

Jenže $id musím nějak získat z prvního pole. A něco jako

<?php
if($this->model->exist($form -> prvniPole)) {
    $form->addText('druhePole');
}
?>

nebo

<?php
if($this->model->exist($form -> getValues() -> prvniPole)) {
    $form->addText('druhePole');
}
?>

mi vrací prázdné hodnoty, protože imho prvniPole je ve chvíli, kdy se vytváří formulář, prázdné.

Editoval uncanny (29. 7. 2015 9:44)

F.Vesely
Člen | 369
+
+3
-

Tady budes muset jit cestou ajaxu. Pri zadani prvniho pole poslat ajax, zkontrolovat existenci v db a prekreslit snippet. Inspiraci muzes vzit u dependent selectu a trochu to upravit pro tvou potrebu.