Yii2 dropdownlist значение по умолчанию

Я использую Yii 2 ActiveForm, пытаясь сделать вариант 7 «по умолчанию».

Для этого мне нужно использовать массив параметров, но когда я это делаю, мой HTML-атрибут «selected» вообще не отображается при просмотре HTML-источника. Я не получаю ошибок.

Если я использую другие параметры, такие как «ярлык», он работает как задумано.

Согласно документам, любая «действительная» опция принята, я полагаю, «выбранная» действительна, так как это HTML-раскрывающийся список?

Это то, что генерируется:

Решение

Здесь ответили: Выбрана опция отметки dropDownList для Yii2 . Вам необходимо установить атрибут даты:

Также есть обсуждение от разработчиков: dropDownList pre Выделение, не отображающее ‘selected’
Они предлагают либо определить значение по умолчанию для атрибута в методе init (), либо установить его непосредственно в поле зрения (это то же самое, что и ответ выше). Я тоже так делаю

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

В моей ситуации код для yii2:

где 1 — это идентификатор выбранного по умолчанию значения.

604 просмотра

1 ответ

46 Репутация автора

У меня есть два dropDownlist в индексе, когда я выбираю кнопку отправки, он получает действие в контроллере, выполняет некоторые операции и снова отображает индекс с gridview, но Selected dropDownList становится пустым, как я могу установить значение по умолчанию в dropDownllist ??

Любое предложение должно быть ценным . это мое мнение

это мой контроллер

когда я выбираю выпадающий список, он получает actionDisplay и находит поставщика данных, а затем снова выполняет рендеринг в индекс, так как в этот раз, как я могу показать выбранное по умолчанию значение в dropDownlist?

Ответы (1)

1 плюс

108316 Репутация автора

Если вы используете activeRecord, то в controllerAction вам следует присвоить $ model-> your_fiedl значение, которое вам нужно по умолчанию

Читайте также:  Dle загрузка файла завершилось ошибкой

если вы не используете активную запись, вы можете использовать

Фреймворк yii2 предоставляет множество полезных функций для генерации HTML кода, одна из таких — dropdownlist. Данная функция принадлежит классу HTML и используется в представлениях для отображения выпадающего списка:

Прежде чем использовать метод dropdownlist необходимо в начале файла, нашего представления объявить класс HTML:

Сейчас существует два способа использования данной функции:

  • Через экземпляр класс ActiveForm
  • Непосредственно через статичный класс HTML

Я предпочитаю пользоваться вторым способом в виду его краткости, но мы рассмотрим оба варианта. Для объекта ActiveForm код будет выглядеть следующим образом:

В данном коде, мы через метод field, класса ActiveForm, задаем модель и вызываем функцию dropDownList. Давайте сразу же рассмотрим второй вариант, а потом поговорим про параметры данной функции.

Как видно оба способа не сильно отличаются.

Аргументы в dropdownlist

Функция dropdownlist принимает 4 аргумента если объявлена через класс HTML и 2 если объявлена через класс ActiveForm, так как в данном случае первые два параметра устанавливаются из функции field. Рассмотрим все 4 аргумента:

  1. $name — имя поля формы, которое устанавливается для дальнейшей обработки запроса на сервере. В примере выше видно строку — name=»cat», это значение и устанавливает данный параметр.
  2. $selected — второй параметр служит для определения значения по умолчанию, то есть присваивает определенному полю option значение selected. Но применение данного свойства различается для способа использования dropdownlist по этому мы рассмотри его подробнее ниже.
  3. $items — принимает одномерный массив из которого генерирует поля option, где value — ключи массива, а содержимое между тегами — значение ключей массива. Так же рассмотрим этот параметр подробнее.
  4. $options (не обязательный аргумент) — массив с параметрами. Подробнее здесь.
Читайте также:  Lg flatron w1943se драйвер

Значения в dropdownlist

Третий аргумент $items определяет какие будут значения в нашем списке. Чаще всего вместе с dropdownlist используется функция map() класса ArrayHelper для того чтобы модель класса ActiveRecord преобразовать в необходимый массив. Например:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *