Default/výchozí hodnota pro select

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

další problémek, nikde jsem nenašel…z databáze naplním položky selectu. Jak určím Nette, která položka se má zobrazit jako výchozí?

redhead
Člen | 1313
+
+1
-

Všechny default hodnoty se musí poslat do metody:

$form->setDefaults(array('pole' => 'hodnota', ...));

nebo případně pro každý prvek zvlášť:

$form->addSelect('select', 'Select', array(..))
	->setDefaultValue(1); //index nebo klíč pod kterým je prvek uložen

Editoval redhead (21. 2. 2010 16:19)

Ondřej Brejla
Člen | 746
+
+1
-

Třeba $form->setDefaults(array('idSelectu' => 'def value'));

Jur4
Člen | 51
+
0
-

Funkcí setDefaultValue(), s parametrem ve kterém bude výchozí hodnota (musí to být klíč pole, ze kterého jsi select vytvářel).

//edit: hmm tak trochu pozdě :)

Editoval Jur4 (21. 2. 2010 16:28)

22
Člen | 1478
+
0
-

se obávam, že mám někde problém, ale nechce to fungovat:

$kategorie = array(1=>'a',2=>'b');
$form = new AppForm;
$form->addSelect('kategorie','Kategorie:',$kategorie)->setDefaultValue(2);
echo $form;

pořád vypisuje „a“ :-(

22
Člen | 1478
+
0
-

A pokud mám pole:

$kategorie = array(1=>'a',2=>'b');
$data['kategorie'] = array(1=>'a');
$form = new AppForm;
$form->addSelect('kategorie','Kategorie:',$kategorie);
$form->setDefaults($data);
echo $form;

..tak to taky nefakci :-(

Editoval 22 (21. 2. 2010 19:09)

22
Člen | 1478
+
0
-

tak po konzultaci s Martinem pres ICQ, to ma vypdat takto:

$kategorie = array(1=>'a',2=>'b');
$data['kategorie'] = $kategorie[2] //napr.
$form = new AppForm;
$form->addSelect('kategorie','Kategorie:',$kategorie)->setDefaultValue($data['kategorie']);
$form->setDefaults($data);
echo $form;