В HTML-коде с Yii2::dropdownlist и в HTML::activeDropDownList компромисс
в Yii2, используя Html::activeDropDownList
, Я могу представить данные в следующей форме:
<?= Html::activeDropDownList($model, 'category', ArrayHelper::map($categories, 'id', 'name'), [
'multiple' => 'multiple',
'class' => 'multiselect',
]) ?>
есть ли способ указать предварительно выбранные категории В приведенном выше?
Я знаю, что это можно сделать с помощью Html::dropDownLost
следующим образом:
<?= Html::dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name'), [
'multiple' => 'multiple',
'class' => 'multiselect',
]) ?>
но есть компромисс! Там нет места, чтобы указать, что это некоторые данные, прикрепленные к определенной модели для отправки, как было с помощью Html::activeDropDownList
.
одним из решений, которое я нашел, было использование ActiveForm
как следующий:
<?= $form->field($model, 'category')
->dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name')
]) ?>
проблема, которую я имею с этим последним вариантом, заключается в том, что я не могу указать параметры html, такие как "несколько" и css, такие как "класс".
любая помощь по возможности использовать выпадающий список с возможностью указать, что список будет многозначным и имеет предварительно выбранные значения? Также, если кто-то направил меня на ресурс, где я могу прочитать о том, когда и где выбрать activeDropDownList
или dropDownList
, Я был бы очень признателен что.
спасибо!
2 ответов
@scaisEdgeответ правильный, но есть еще один вариант, который вы можете попробовать:
<?php
$model->category = [1,3,5]; //pre-selected values list
echo $form->field($model, 'category')
->dropDownList(ArrayHelper::map($categories, 'id', 'name'),
[
'multiple' => 'multiple',
'class' => 'YOUR_CLASS'
]
) ?>
этот код также действителен и проверен. Счастливое кодирование:)
Я думаю, вы можете попробовать с $ options и атрибут тега как предложил в doc
<?= Html::dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name'), [
'multiple' => 'multiple',
'options' => [
'value1' => ['disabled' => true, 'class' => 'yourClass', 'style'=> 'yourStyle', .... ],
'value2' => ['label' => 'value 2'],
];
]) ?>