2016-05-05 9 views
2

Ist es möglich, die Optionen in einem Select-Element zu deaktivieren?zf2 Formular deaktivieren Option (en) auswählen

Ich habe ein Formular mit einem Auswahlelement, das standardmäßig viele Optionen zur Verfügung hat. Bei der Formularerstellung möchte ich abhängig von den Informationen, die aus der Datenbank abgerufen werden, bestimmte Optionen deaktivieren.

Einige Forschung kam mit $form->get('selectElement')->setAttribute("disabled", array(0, 1, 2)); ... welche die ersten 3 Optionen deaktivieren sollte, aber leider nicht.

+0

Mögliche doppelte: [deaktivieren einige Optionen wählen in Zend Framework 2] (http://stackoverflow.com/questions/31362010/disable-einige-optionen-select-in-zend-framework-2) – Clijsters

Antwort

0

Sie müssen die setAttribute() Methode verwenden, um die Attribute Ihres Elements select festzulegen, nicht seine Optionen. Dazu sollten Sie setValueOptions() verwenden:

$myOptions = $form->get('selectElement')->getValueOptions(); 
foreach ([0, 1, 2] as $value) { 
    $myOptions [$value]['disabled'] = true ; 
} 
$form->get('selectElement')->setValueOptions($myOptions); 

$myOptions muss ein Array von Optionen sein:

[ 
    [ 
     'label' => 'My first option', 
     'disabled' => false, 
     'value' => 1 
    ], 
    [ 
     'label' => '2nd option', 
     'disabled' => false, 
     'value' => 2 
    ], 
    [ 
     'label' => '3rd option disabled', 
     'disabled' => true, 
     'value' => 3 
    ], 
] 
Verwandte Themen