2016-06-06 2 views
0

karthik yii2 widget을 사용하여 select2를 렌더링합니다. 업데이트 된 버전을 사용하고 있습니다. initSelection을 사용하여 초기 값을 설정하려했으나 정상적으로 작동합니다. 하지만 다른 값을 추가하려고하면 미리 선택된 값이 initSelection을 통해 설정된 ID로 변경됩니다.Select2 처음 값을 설정 한 후 다른 값을 추가하면 첫 번째 값의 텍스트가 변경됩니다

<?php 
$initScript = <<< SCRIPT 
function (element, callback) { 
    var id = \$(element).val(); 
    if (id !== "") { 
    var url = "{$url}"; 
    \$.ajax(url.replace('idreplace', id), {dataType: "json"}).done(
     function(data) { 
     callback(data.results); 
     }); 
    } 
} 
SCRIPT; 
echo Select2::widget([ 
          'language' => 'en', 
          'name' => 'to', 
          'value' => ['1'], 
          'options' => [ 
          'placeholder' => 'Choose...', 
          'id' => "to", 
          'multiple' => true, 
          'data-validation'=>'required', 
          ], 
          'pluginOptions' => [ 
             'language' => [ 
             'errorLoading' => new JsExpression("function() { return 'Waiting for results...'; }"), 
                ], 
          'allowClear' => true, 
          'minimumInputLength' => 3, 
          'multiple' => true, 
          'ajax' => [ 
           'url' => $url, 
           'dataType' => 'json', 
           'tags' => true, 
           'data' => new JsExpression('function(params) { return {search:params.term}; }'), 
           'results' => new JsExpression('function(data,page) {return { results:data.results }; }'), 
          ], 
          'initSelection' => new JsExpression($initScript) 
          ], 

        ]); 
       ?> 
+0

누구든지이 문제에 도움을 줄 수 있습니까? –

답변

0

마침내 문제가 해결되었습니다. select2 4.0에서는 initselection이 더 이상 사용되지 않습니다. "initValueText"를 사용하여 초기 값을 설정하려고 시도했습니다.

echo Select2::widget([ 
         'language' => 'en', 
         'initValueText' => ['intialvaluetext'],//text of initial value 
         'name' => 'to', 
         'value' => ['1'],//matching id for initial value text 
         'options' => [ 
         'placeholder' => 'Choose...', 
         'id' => "to", 
         'multiple' => true, 
         'data-validation'=>'required', 
         ], 
         'pluginOptions' => [ 
            'language' => [ 
            'errorLoading' => new JsExpression("function() { return 'Waiting for results...'; }"), 
               ], 
         'allowClear' => true, 
         'minimumInputLength' => 3, 
         'multiple' => true, 
         'ajax' => [ 
          'url' => $url, 
          'dataType' => 'json', 
          'tags' => true, 
          'data' => new JsExpression('function(params) { return {search:params.term}; }'), 
          'results' => new JsExpression('function(data,page) {return { results:data.results }; }'), 
         ], 

         ], 

       ]); 
      ?>