yii2yii-widgets

Yii2, set default value for select2 widget


 use kartik\widgets\Select2;

 echo Select2::widget([
    'model' => $myModel,
    'name' => 'company[]',
    'options' => [
        'placeholder' => 'Select a company ...',
        'multiple' => true,
    ],
    'value' => 6, //doesn't work
    'initValueText' => '6', //doesn't work
    'pluginOptions' => [
        'allowClear' => true,
        'ajax' => [
            'url' => Url::to(['/company/default/get-company-list']),
            'dataType' => 'json',
            'data' => new JsExpression('function(term,page) {
                return {term : term.term};
            }'),
            'results' => new JsExpression('function(data,page) {return {results:data.results}; }'),
        ],
        'initSelection' => new JsExpression('function(element, callback) {
            $(element).val(6); //doen't work
            callback({"text" : "Vendor B", "id" : 6}); // it does only set text, not id
        }'),
    ],
]);
... many many select2 form below too, that named 'company[]'

After form submit, if user come back to this page, I want to set what user selected as default.

How can I set default value for Select2 widget?


Solution

  • When you update the model, it will automatically have the last selected value.

    $myModel = new \app\models\myModel;
    $myModel->attributes = \Yii::$app->request->post('myModel');