17. August 2009 - 15:17
Symfony: Dropdown Felder in Formularen zur Laufzeit ändern
Mit diesem Code kann man in der Action die Optionen der Selectbox anpassen. In der Formular Klasse (in der configure() methode) müssen bereits choices definiert sein, sonst gibt es einen Fehler, wenn das Form initialisiert wird.
[...]
// Formular initialisieren
$this->form = new addtaskForm();
// Das entsprechende Widget Schema anpassen
$widgetSchema = $this->form->getWidgetSchema();
$widgetSchema['task']->setOption('choices', array('0' => 'arbeiten', 1 => 'spielen', 2 => 'schlafen'));
// Standardauswahl setzen
$this->form->setDefault('task', 1);
[...]
Eine alternative Vorgehensweise wäre diese:
In der Formular Klasse:
[...]
public function configure()
{
$this->widgetSchema['task'] = new sfWidgetFormSelect(array('choices' => $this->getDefault("task_items")));
[...]
In der Action:
$versionItems = array('0' => 'arbeiten', 1 => 'spielen', 2 => 'schlafen');
$this->form = new addtaskForm(array('task_items' => $versionItems));
$this->form->setDefault('task', 1);
(Version: Symfony 1.2)
- Symfony /
- Tipp des Tages /
- WebDev /

Kommentar hinzufügen