Nastavení defaultní hodnoty u select boxu

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

Ahoj,
na webu mám ve formuláři selectbox to kterého načítám data z db:

$materials = $this->context->createMaterial()->fetchPairs('cena', 'nazev');


$form->addRadioList('mat', 'Materiál: ', $materials);

A teď si nevím rady, jak nastavit defaultní hodnotu na kteroukoli položku z takto naplněného selectboxu.

Když mám selectbox plněný klasicky polem tak to je v pohodě.

díky

JakubTN
Bronze Partner | 49
+
0
-

Otazka je, podla coho urcujes, ktora hodnota je ta defaultna. Ak vies konkretnu cenu, ktora ma byt nastavena ako defaultna (napriklad cena 10), potom by malo fungovat toto:

$form->addRadioList('mat', 'Materiál: ', $materials)
     ->setDefaultValue(10);

Ak by si to chcel dynamicky, musel by si mat v db ulozene, ktora hodnota je default a tuto potom zvlast vytiahnut do premennej, ktoru das do setDefaultValue().

Editoval JakubTN (10. 10. 2012 10:51)

.:M@rt!n:.
Člen | 201
+
0
-

No v tom je právě problém. Cenu sice znám, ale administrátorem může být změněna a potom tudíž není žádná defaultní hodnota.

JakubTN
Bronze Partner | 49
+
0
-

Tak potom taketo nieco?

$form->addRadioList('mat', 'Materiál: ', $materials);

$defaultMaterial = $this->context->createMaterial()->where('default', TRUE)->fetch();
if($defaultMaterial) {
$form['mat']->setDefaultValue($defaultMaterial->cena);
}
.:M@rt!n:.
Člen | 201
+
0
-

Díky, řešit to přes db by mě nenapadlo.