Не удается найти значение в ajax-загрузке select2 в yii2

Я использую Select2 AJAX загрузки. Я получаю код по этой ссылке: http://demos.krajee.com/widget-details/select2. Когда я ввожу слова в поле, они отображают все данные / значения, но не могут автоматически выбирать данные / значения в соответствии со словами, которые я ввожу в поле. Итак, мой select2 всегда выбирает первые данные / значение и отображает все значения. В чем проблема? Вот эти коды:

_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
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]