Antonchik
@Antonchik
Программирую на HTML

Как ограничить количество выводимых элементов yii2 autocomplete?

Есть на странице виджет autocomplete
<?= $form->field($model,'city')->label(false)->widget(\yii\jui\AutoComplete::className(),[
        'clientOptions' => [
            'source' => ArrayHelper::getColumn(\app\models\City::find()->select('city_name_ru')->all(),'city_name_ru'),
        ],
        'options' => [
            'class' => 'form-control',
            'placeholder' => 'Город',
            'value' => $city
        ]
    ])?>


Как мне ограничить количество выводимых результатов?
  • Вопрос задан
  • 720 просмотров
Решения вопроса 1
qonand
@qonand
Software Engineer
что Вы имеете ввиду под
ограничить количество выводимых результатов

если Вы имеете ввиду количество символов после которого будет отображаться выпадающий список используйте параметр minLength, например:
'clientOptions' => [
    'minLength' => 3
],

если же имеет ввиду количество отображаемых записей в выпадающем списке, тогда для этого виджета это можно сделать только на уровне CSS (соответственно появится скрул), т.к. виджет не предусматривает такой настройки
.ui-autocomplete {
  max-height: 100px;
  verflow-y: auto;
  overflow-x: hidden;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kryvel
Системный администратор
Если Вам не подходит способ предложенный Максим Федоров то можно попробовать еще вот это stackoverflow.com/a/7617637/4828205
'clientOptions' => [
'source' => new \yii\web\JsExpression("function(request, response) {
var results = $.ui.autocomplete.filter(myarray, request.term);
response(results.slice(0, 10));
}"
]
там правда придется извратится с запросом к базе из js функции. но это можно реализовать с помощью ajax. Виджет все равно примерно так же и делает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы