2016-05-09 7 views
0

私はselect2 ajaxの読み込みを使用しています。私はこのリンクからコードを得ます:http://demos.krajee.com/widget-details/select2。フィールドに単語を入力すると、すべてのデータ/値が表示されますが、フィールドに入力する単語に応じてデータ/値を自動的に選択することはできません。だから、私のselect2は常に最初のデータ/値を選択し、すべての値を表示します。どうしたの?これらは、コードです:select2で値が見つかりませんyii2でロードするajax

_form.php

$url = Url::to(['/paket/jsonlist']); 

    $cityDesc = empty($model->no_induk) ? '' : Penerima::findOne($model->no_induk)->nama; 

    echo $form->field($model, 'no_induk')->widget(Select2::classname(), [ 
     'initValueText' => $cityDesc, // set the initial display text 
     'options' => ['placeholder' => 'Search for a city ...'], 
     'pluginOptions' => [ 
      'allowClear' => true, 
      'minimumInputLength' => 1, 
      'language' => [ 
       'errorLoading' => new JsExpression("function() { return 'Waiting for results...'; }"), 
      ], 
      'ajax' => [ 
       'url' => $url, 
       'dataType' => 'json', 
       'data' => new JsExpression('function(params) { return {q:params.term}; }') 
      ], 
      'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), 
      'templateResult' => new JsExpression('function(no_induk) { return no_induk.text; }'), 
      'templateSelection' => new JsExpression('function (no_induk) { return no_induk.id; }'), 
     ], 
    ]); 

私のコントローラ:

public function actionJsonlist($q = NULL, $id = NULL) 
    { 
     \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; 
     $out = ['results' => ['id' => '', 'text' => '']]; 

     if(!is_null($q)) 
     { 
      $query = new \yii\db\Query; 
      $mainQuery = $query->select('no_induk AS id, nama AS text') 
           ->from('penerima') 
           ->limit(20); 
      $command = $mainQuery->createCommand(); 
      $data = $command->queryAll(); 
      $out['results'] = array_values($data); 
     } 
     elseif ($id > NULL) 
     { 
      $out['results'] = ['id' => $id, 'text' => \frontend\models\Penerima::find($id)->nama]; 
     } 
     return $out; 
    } 

答えて

0

あなたはVARS

echo $form->field($model, 'no_induk')->widget(Select2::classname(), [ 
    'initValueText' =>'cityDesc', // set the initial display text 

または

属性名を使用していないことでした
echo $form->field($model, 'no_induk')->widget(Select2::classname(), [ 
    'initValueText' =>$model->cityDesc, // set the initial display text 
関連する問題