#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

 

#4 24. 2. 2010 10:52

despiq
Nette guru
Registrovaný: 24. 11. 2009
Příspěvky: 287

Re: addConditionOn Error

nerozumim tedy problemu

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

 

#6 24. 2. 2010 12:48

despiq
Nette guru
Registrovaný: 24. 11. 2009
Příspěvky: 287

Re: addConditionOn Error

Vazne? A nekecas tak trochu? Zkousel si to?

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 :-)


$this->terminate();

http://twitter.com/TomasKavalek

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

 

Zápatí