Dieses Blog durchsuchen

Donnerstag, 25. August 2011

SYMFONY: In einem Auswahlfeld (sfWidgetFormSelect) zur Laufzeit einen Wert setzen. (Version: Symfony v.1.4.14)

Eine Form mit dem Namen "MyForm" wurde in der lib/form/myform.php etwa so definiert:

class MyForm extends BaseForm
{
  protected static $themes = array('Thema 1', 'Thema 2', 'Thema 3', ‘Thema 4’);
  public function configure()
  {
    $this->setWidgets(array(
      'my_widget'   => new sfWidgetFormSelect(array('choices' => self::$themes)),
  }
}


Nun wird die Form in einer Action folgend erzeugt:
$this->my_form = new MyForm();

Die im Auswahlfeld angezeigte Auswahl ist standardmäßig der erste Eintrag also: „Thema1“

Wenn man zur Laufzeit die angezeigte Auswahl ändern will muss man folgend vorgehen:
Der Eintrag 3 also "Thema 4" soll als ausgewählt angezeigt werden:
$my_new_choice = 3
$widget = $this->my_form->GetWidget('my_widget');
$widget->setDefault(array('choices' => $my_new_choice));

Es geht auch auf direktem Weg:
$this->my_form->setDefault('my_widget', $my_new_choice);

Der Text unterliegt dem Copyright und darf nicht vervielfältigt werden ohne unsere Zustimmung.

Keine Kommentare:

Kommentar veröffentlichen