SelectBox – naplneni Array-em

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

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
+
0
-

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
+
0
-

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
+
0
-

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.

14113
Člen | 33
+
0
-

Dik za radu, jen jeste jeden dotaz. Rekneme ze to presunu az do tovarnicky, tak mam jediny problem. Delam SQL dotaz s podminkou na id, ale jak to id ziskam v te tovarnicce? Nejak jsem nezjistil jak se da predat hodnota do tovarnicky??

Ondřej Mirtes
Člen | 1536
+
0
-
$this->getParam('id');