$form->setElement(): Defaultwert für Select-Feld einstellen?

hi, gibt es die Möglichkeit einem Select-Feld ein Vorauswahl mitzugeben? also quasi das Attribut “selected” vielen Dank.

Hallo hbee, das dürfte ebenfalls über den ‘value’ laufen. Also ungefähr so: $form-\>setElement('select', 'select', array( 'label' =\> 'Select', 'value' =\> 2, 'store' =\> array( array(1, 'Testvariable 1'), array(2, 'Testvariable 2'), array(3, 'Testvariable 3') ), 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP) ); Das dürfte so bereits funktionieren. Gruß, Patrick :shopware:

Hallo Patrick, danke für deine Antwort. Leider funktioniert das so nicht. Wenn ich das value angebe, wird dieses in der Auswahl angezeigt – in deinem Beispiel also die ‘2’ und nicht ‘Testvariable 2’. Wenn ich als value dann zb ‘Testvariable 2’ mitgebe, wird das zwar in der Auswahl angezeigt aber der Wert ‘2’ nicht übergeben. Da muss es noch etwas anderes geben… viele Grüße, Heiko

Das Thema ist zwar schon etwas älter, aber da ich gerade vor dem gleichen Problem stand: Ich benötige ein DropDown mit den verfügbaren Bestellstatus und will einen bestimmten Status vorbelegen. Dazu habe ich in der Bootstrap.php folgenden Code: $sql = "SELECT `id`, `description`, `group` FROM `s_core_states` WHERE `group` = 'state' ORDER BY `position`"; $states = Shopware()-\>Db()-\>query($sql); $statusArray = array(); foreach($states as $k=\>$v){ $statusArray[] = array($v['id'], $v['description']); } $form-\>setElement('select', 'orderStateAfterExport', array( 'label' =\> 'Bestellstatus', 'scope' =\> \Shopware\Models\Config\Element::SCOPE\_SHOP, 'required' =\>true, 'value' =\> $defaultStatus, 'store' =\> $statusArray ) ); Den Wert für $defaultStatus erhalte ich aus einer Methode, die einen neuen Status anlegt und die ID als Integer liefert. Mit dem obigen Code wird aber nicht die description des neuen Status vorgegeben, sondern im DropDown steht die ID als Text, also z.B. ‚37‘. Das kommt daher, dass die ID aus der SQL-Abfrage als String interpretiert wird. Wenn ich den Code so abändere: foreach($states as $k=\>$v){ $statusArray[] = array(intval($v['id']), $v['description']); } funktioniert die Vorauswahl.

1 Like