SelectBox – naplneni Array-em
- 14113
- Člen | 33
Ahoj, udelal jsem si tovarnicku na formular a chci tam mit selectBox a ten
chce abych mu predal pole s hodnotami ktere budu pak davat na vyber. Problem je
v tom ze kdyz chci nastavit pole s hodnotami v presenteru
$formular = $this[„form“];
$formular->setValues(array(‚zkoska‘=>1));
tak nevim jak naplnit ten selectBox tim polem ktere predavam v presenteru,
protoze se nemuze zadat string ale array..
form->addSelect(‚nazev‘, ‚Nazev‘, / ZDE MUSIM ZADAT POLE
A NE String=‚zkouska‘/ );
nevi nekdo jak na to? Predem dekuji za odpoved :)
- Ondřej Mirtes
- Člen | 1536
Nějak nechápu, v čem je problém.
$form->addSelect('nazev', 'Název', array('Zkouška'));
Editoval LastHunter (6. 11. 2009 18:26)
- 14113
- Člen | 33
Kdyz zadam to co jsi napsal ty, tak se preda pole s jednou hodnotou a to: ‚zkouska‘
Problem je v tom ze predavam hodnoty v presenteru takto
<?php
$formular->setValues(array('zkouska'=>array('a'=>1,'b'=>2)));
//nebo
$formular->setValues(array('a'=>1,'b'=>2));
//ani jedno nejde
?>
Editoval 14113 (6. 11. 2009 18:41)
- Ondřej Mirtes
- Člen | 1536
Tak buďto to přesuň do továrničky přímo do přidávání selectboxu, anebo si přečti API SelectBox :)
Pro nastavení položek slouží metoda setItems
(a na
konkrétní selectbox, tzn. že si ho musíš vytáhnout přes
$form['nazev']
), ne setValues
, které navíc
posíláš na celý formulář.
A pokud už to chceš přesunout přímo do metody konkrétní action v Presenteru, tak to udělej v action*, protože v render metodě je na to pozdě – při zpracování odeslaného formuláře by o těch položkách aplikace ještě nevěděla a myslela si, že se útočník snaží podstrčit nějaké hodnoty.