2017-06-19 6 views
0

Grundsätzlich verwende ich Kartik Select2, um eine Dropdown-Liste zu erstellen.Hinzufügen von Select2-Datenoption in Kartik Select2

Wenn ich ein Daten wie diese:

<?php 
$mapListNoEstimate = ArrayHelper::map($listNoEstimate, 'id', function ($model, $value) { 
    return $model['no_surat'] . ' - ' . $model['level']; 
}); 

In Select2:

echo $form->field($model, 'repair_estimate_id')->widget(Select2::className(), [ 
    'data' => $mapListNoEstimate, 
    'theme' => Select2::THEME_CLASSIC, 
    'options' => [ 
     'placeholder' => 'Select an estimate ...', 
     'options' => [ 

     ] 
    ], 
]) 

, Wie können wir einige Daten-Attribut hinzufügen?

In meinem Fall möchte ich Datenebene in jeder Option hinzufügen.

Sie wissen, in Legacy-Option wählen, können wir wie folgt tun:

<select> 
    <option value='$model["id"]' data-level= '$model["level"]'> 
     $model['no_surat'] . ' - ' . $model['level'] 
    </option> 
</select> 

Bitte beraten.

Antwort

0

Sie können die options innerhalb options setzen. Siehe das folgende Beispiel.

echo Select2::widget([ 
'name' => 'kv-type-01', 
'data' => [1 => "First", 2 => "Second", 3 => "Third", 4 => "Fourth", 5 => "Fifth"], 
'options' => [ 
    'placeholder' => 'Select a type ...', 
    'options' => [ 
     1 => ['data-level' => 'something 1'], 
     2 => ['data-level' => 'something 2'], 
     3 => ['data-level' => 'something 3'], 
     4 => ['data-level' => 'something 4'], 
     5 => ['data-level' => 'something 5'], 
    ] 
], 
]); 
+0

Danke Körper, aber wenn ich 200 Optionen habe, ist es der Weg ist empfehlenswert? –

+0

Sie können eine Array-Variable für sie erstellen und übergeben. – user6838959

+0

Funktioniert das? – user6838959

Verwandte Themen