Yii2 dropdownlist. Часть 2

Yii2 dropdownlist

От автора: приветствую вас, друзья. Мы продолжаем цикл статей, посвященных знакомству с фреймворком Yii2. В этой статье мы с вами поработаем с выпадающими списками формы и познакомимся с методом Yii2 dropdownlist, который и позволяет добавить для формы выпадающий список.

Итак, в прошлой статье мы воспользовались методом dropDownList и получили HTML код выпадающего списка select. При этом мы использовали только первый обязательный параметр данного метода, т.е. массив категорий. Напомню, метод dropDownList принимает первым параметром массив, ключи которого будут значениями элементов списка, а значения массива будут текстовыми элементами списка. Суть, думаю, понятна.

Однако, кроме первого параметра dropdownlist может работать и со вторым, необязательным. В качестве него мы можем передать массив опций (настроек) списка. Давайте попробуем использовать второй параметр.

Полезной возможностью будет добавить в выпадающий список некоторый пояснительный текст. Сейчас у нас сразу идет список категорий, но неплохо было бы вставить туда строку, к примеру, Выбор категории. Сделать это поможет опция prompt:

<?= $form->field($model, 'category_id')->dropDownList(
 \yii\helpers\ArrayHelper::map($cats, 'id', 'name'),
 [
 'prompt' => 'Выбор категории',
 ]
) ?>

Yii2 dropdownlist

Фреймворк YII2. Быстрая разработка с современным PHP фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Узнать подробнее

Таким же образом мы можем передавать и прочий набор опций, например class или id, которые могут участвовать в оформлении списка.

Также возможно вы захотите сделать активным другой элемент списка по умолчанию, т.е. использовать атрибут selected. Это можно сделать так:

<?= $form->field($model, 'category_id')->dropDownList(
 \yii\helpers\ArrayHelper::map($cats, 'id', 'name'),
 [
 'prompt' => 'Выбор категории',
 'id' => 'test',
 'options' => [
 '2' => ['Selected' => true]
 ]
 ]
) ?>

Ключом массива options будет как раз искомое значение списка, которое должно быть выбрано по умолчанию.

Интересной возможностью может быть реализация группированного списка. Такая возможность достаточно специфична, но тем не менее. Реализуем искусственный пример. Для этого нам необходим многомерный массив, который мы и передадим параметром для построения списка:

<?php
 $items = [
 'Группа 1' => [
 0 => 'Элемент 1.1',
 1 => 'Элемент 1.2',
 2 => 'Элемент 1.3',
 ],
 'Группа 2' => [
 3 => 'Элемент 2.1',
 ],
 'Группа 3' => [
 4 => 'Элемент 3.1',
 5 => 'Элемент 3.2',
 ],
 ];
?>

А теперь генерирование списка:

<?= $form->field($model, 'category_id')->dropDownList(
 $items
) ?>

И результат в браузере:

Yii2 dropdownlist

На этом, пожалуй, остановимся. Больше о фреймворке вы можете узнать из наших бесплатных или платных уроков. Также создание простейшего блога на Yii2 можно посмотреть в этом цикле уроков.

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Фреймворк YII2. Быстрая разработка с современным фреймворком

Узнай тонкости современной веб-разработки с помощью фреймворка YII2

Научиться

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree