всем привет еще раз
можно ли избавиться от тега optiongroup? ну или сделать так, чтобы ноль из его лэйбла не отражался в выпадающем списке
<optgroup label="0">
...
</optgroup>
всем привет еще раз
можно ли избавиться от тега optiongroup? ну или сделать так, чтобы ноль из его лэйбла не отражался в выпадающем списке
<optgroup label="0">
...
</optgroup>
А откуда он у вас вообще появляется? Вы в dropDownList передаете не просто массив ключ->значение а категория->(ключ->значение) ?
если б я знал — откуда он у меня появляется!
видимо из-за listData
вот мой выпадающий список =
<?php
echo $form->dropDownList(
$model, "id_sect", array(
CHtml::listData(BSections::model()->findAll(), 'id_sect', 'name'),),
array('empty'=>'-- выбрать группу --','style'=>'padding:6px;'));
?>
А что возвращает: CHtml::listData(BSections::model()->findAll(), ‘id_sect’, ‘name’) ?
И еще запятая после этого оператора, меня смущает.
listData возвращает массив, поэтому у вас в dropDownList в 3м параметре получается массив в массиве, что приводит к построению подгрупп в методе listOptions (этот метод вызывается в dropDownList). Как минимум попробуйте так:
<?php
echo $form->dropDownList(
$model, "id_sect", CHtml::listData(BSections::model()->findAll(), 'id_sect', 'name'),
array('empty'=>'-- выбрать группу --','style'=>'padding:6px;'));
?>
спасибо! сработало!
если вместо
array(CHtml::listData(BSections::model()->findAll(), 'id_sect', 'name'))
сделать
CHtml::listData(BSections::model()->findAll(), 'id_sect', 'name')
то все работает как надо = optgroup пропадает!
listData позволяет получить данные в нужном формате из связанной таблицы БД (из другой модели) по нужному полю
в моем случае есть две таблицы - в одной статьи, в другой категории статей (группы)
чтобы в админке получить выпадающий список для конкретной статьи с названиями групп статей я и запрашиваю все названия групп статей name с помощью listData из модели BSections связанные с полем id_sect
p.s. эти две таблицы связаны друг с другом с помощью поля id_sect
Тоже с такой проблемой столкнулся. Нолик в списке был. Не знал что делать. Пока сюда не зашел. Спасибо… Тоже массив в массиве был.