Nefunguje setValues() u select boxů

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

Snažím se nastavit defaultní hodnoty pro formulář pomocí funkce setValues(). Vše funguje jak má, až na select boxy, u kterých se mi nic nezobrazí. Je to chyba Nette, nebo jsem něco udělal špatně?

		$form = new Form;
		$form->addText('text', 'Text');
		$form->addSelect('select', 'Select');
		$form->setValues(array('text' => 'TEXT', 'select' => array('POLOŽKA1', 'POLOŽKA2')));

Editoval Nutelac (21. 10. 2012 16:03)

22
Člen | 1478
+
0
-

pro nastavení default hodnot pro form setDefaultValues()

Editoval 22 (21. 10. 2012 17:17)

Foowie
Člen | 269
+
0
-

Pokud chceš nastavit možnosti selectboxu, tak na to použij $select->setItems(array(1 => 'Jedna', 2 => 'Dva'));

Defaultní hodnotu pak nastavíš na formuláři pomocí $form->setDefaultValues(array('select' => 2));

vvoody
Člen | 910
+
0
-

alebo

		$form = new Form;
		$form->addText('text', 'Text');
		$form->addSelect('select', 'Select', array('POLOŽKA1', 'POLOŽKA2'));

ale to pole by mali byt dvojice key=>value, takto by si pri spracovaní formuláru mal v $form->getValues(); pod kľúčom ‚select‘ hodnotu ktorá by bola len index vybranej položky. Možno chceš práve toto:

		$form->addSelect('select', 'Select', array('POLOŽKA1'=>'POLOŽKA1', 'POLOŽKA2'=>'POLOŽKA2'));
Nutelac
Člen | 58
+
0
-

Upravuji si formuláře (resp. container) a potřebuji naplnit select už v containeru, což setItems() nesplňuje. Nechápu proč to není pomocí setValues() nebo setDefaults() u selectu možné, když u všeho ostatního funguje.

Editoval Nutelac (21. 10. 2012 17:49)

vvoody
Člen | 910
+
0
-

Máš v tom trochu guláš. Funkcia setValues (setDefaultValues) u selectu nastavuje ktorá položka bude defaultne vybraná (html atribút selected). Ty zrejme očakávaš že tým nastavíš zoznam položiek ktoré select bude obsahovať.

Nutelac
Člen | 58
+
0
-

Máte pravdu. Očekával jsem, že tím nastavím seznam položek. Díky za vysvětlení. Je možné tedy nastavit položky selectu z containeru?

Editoval Nutelac (21. 10. 2012 18:08)

vvoody
Člen | 910
+
0
-

Ako bolo napísané vyššie,

  • bud ako tretí parameter addSelect
  • alebo za addSelect zreťaziť volanie setItems.