2015-07-07 4 views
1
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[]' 

После отправки формы, если пользователь вернется на эту страницу, я хочу установить, какой пользователь выбрал по умолчанию.Yii2, установить значение по умолчанию для select2 widget

Как установить значение по умолчанию для виджета Select2?

ответ

1

При обновлении модели она автоматически получит последнее выбранное значение.

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

Благодарим вас за ответ, может ли он иметь атрибут массива в модели? пока я просто использую фиктивную модель для Select2, на самом деле это ничего не делает. Думаю, мне нужно создать модель представления для их хранения, верно? пожалуйста, сообщите, – Nerd

+0

Да, это правильно, вы не получите полную функциональность, пока не создадите модель и отношения и все, что еще нужно. Массивы удовлетворяются, например, в группах флажков и т. П. – n099y

Смежные вопросы