#1 24. 2. 2010 2:40
- brazvo
- Člen
- Registrovaný: 21. 2. 2010
- Příspěvky: 15
addConditionOn Error
Ahoj,
zase mam maly problem a neviem ci robim chybu ja, alebo je to proste takto dane, mam tento kod:
<?php
$form->addText('ps_nadpis_menu', 'Nadpis pre menu:')
->addConditionOn($form['ps_zobrazovat'], Form::EQUAL, TRUE) // ak je zasktnuty
->addRule(Form::FILLED, 'Zvolili ste zobrazovať, zadajte Nadpis pre menu');
$form->addText('ps_priorita', 'Priorita:', 1,2)
->setEmptyValue(0)
->addRule(Form::NUMERIC, 'Zadajte číslo');
$form->addCheckbox('ps_zobrazovat', 'Zobrazovať (v menu):');
?>
Po spusteni mi to vyhodi chybu, ze to nepozna prvok ps_zobrazovat, ked zakomentujem podmienku addConditionOn, tak sa formular vykresli. Ma to takto fungovat? Je nutne deklarovat prvok ps_zobrazovat pred volanim addConditionOn? Ak ano, tak potom by som navrhoval nieco ako dodatocne addRule a potom by posledny riadok kod mohol vyzerat:
<?php
$form->addCheckbox('ps_zobrazovat', 'Zobrazovať (v menu):')
->addCondition(Form::EQUAL, TRUE)
->addRuleOn($form['ps_nadpis_menu'], Form::FILLED);
?>
Ak take nieco uz je, tak super, len ma nasmerujte. Niekedy je dost nesikovne a neesteticke davat Check Boxy, koli validacii niekde pred prvok, ktory ma byt potom testovany.
B.
Editoval brazvo (24. 2. 2010 2:43)
Offline
#2 24. 2. 2010 3:17
- despiq
- Nette guru

- Registrovaný: 24. 11. 2009
- Příspěvky: 287
Re: addConditionOn Error
ty estéte
<?php
$form = new \Nette\Application\AppForm($this, $name);
$form->addText('ps_nadpis_menu', 'Nadpis pre menu:');
$form->addText('ps_priorita', 'Priorita:', 1,2)
->setEmptyValue(0)
->addRule(\Nette\Application\AppForm::NUMERIC, 'Zadajte číslo');
$form->addCheckbox('ps_zobrazovat', 'Zobrazovať (v menu):');
$form['ps_nadpis_menu']->addConditionOn($form['ps_zobrazovat'],AppForm::EQUAL, TRUE) // ak je zasktnuty
->addRule(AppForm::FILLED, 'Zvolili ste zobrazovať, zadajte Nadpis pre menu');
?>
Offline
#3 24. 2. 2010 9:45
- brazvo
- Člen
- Registrovaný: 21. 2. 2010
- Příspěvky: 15
Re: addConditionOn Error
@despiq
No tak na toto som prisiel aj ja, ale to je presne to co ten formular rozhadzuje. Totizto ten kod nebol kompletny a okrem polozky ps_nadpis_menu je tam aj polozka ps_nadpis. Jedna sa totizto jednoduchy form na spravu obsahu podstranky a strukturu ma takuto:
Nadpis (zobrazuje sa na stranke ako titulok)
Nadpis pre menu (zobrazuje sa ako polozka menu)
Text stranky
Zobrazovat? (Ma sa zobrazit v menu?)
Priorita (na akom mieste v menu sa ma zobrazit)
No a je trosku nelogicke a neesteticke :) mat tie nadpisy od seba, no ale budem to musiet asi prekopat a Prioritu a Zobrazit? na zaciatok formu, aj ked taka moja logika vyplnovania formu je, ze najprv vyplnim form a potom urcim podmienky zobrazovania. Mam to mozno vzite z X formov, ktore som na nate vyplnoval, ze najprv som vyplnil nejake chlieviky a potom som zaskrtaval, ci chcem byt infomovny o novikach, o aktualizaciach a podobne…
B.
Offline
#5 24. 2. 2010 12:40
- brazvo
- Člen
- Registrovaný: 21. 2. 2010
- Příspěvky: 15
Re: addConditionOn Error
Problem je, ze s tvojim riesenim by formular vypadal takto:
Nadpis (zobrazuje sa na stranke ako titulok)
Text stranky (TextArea)
Zobrazovat? (Ma sa zobrazit v menu?)
Nadpis pre menu (zobrazuje sa ako polozka menu)
Priorita (na akom mieste v menu sa ma zobrazit)
Toto je sice funkcne, ale neesteticke a logicka postupnot vyplnovania formularu je rozhadzana. Pouzi trosku imaginacie a predstav si to vykreslene na obrazovke.
Offline
#7 24. 2. 2010 13:06
- toka
- Člen

- Místo: Kostelec nad Orlicí
- Registrovaný: 5. 8. 2009
- Příspěvky: 173
Re: addConditionOn Error
brazvo napsal(a):
Problem je, ze s tvojim riesenim by formular vypadal takto:
Nadpis (zobrazuje sa na stranke ako titulok)
Text stranky (TextArea)
Zobrazovat? (Ma sa zobrazit v menu?)
Nadpis pre menu (zobrazuje sa ako polozka menu)
Priorita (na akom mieste v menu sa ma zobrazit)Toto je sice funkcne, ale neesteticke a logicka postupnot vyplnovania formularu je rozhadzana. Pouzi trosku imaginacie a predstav si to vykreslene na obrazovke.
Vykreslí se přeci přesně jak chceš, jen podmínku určíš na konci :-)
Offline
#8 24. 2. 2010 15:51
- brazvo
- Člen
- Registrovaný: 21. 2. 2010
- Příspěvky: 15
Re: addConditionOn Error
@despiq Omluvam sa Proste som myslel ze mam lepsiu foto pamat ;) Kedze ty si si to poupravoval s tym AppForm, tak ja som si to nekopiroval, ale upravoval rucne a neviem preco som dospel k vysledku ako predtym, teraz uz vidim, ze ten zazrak je na riadku:
<?php
$form['ps_nadpis_menu']->addConditionOn($form['ps_zobrazovat'],AppForm::EQUAL, TRUE) // ak je zasktnuty
->addRule(AppForm::FILLED, 'Zvolili ste zobrazovať, zadajte Nadpis pre menu');
?>
Sorry a diki,
B.
Offline


