Список в DropDown список в Yii

Пожалуйста, помогите с этим кодом:

<ul class="activity-projects">
<?php foreach ($ownProjects as $userProject) : ?>
<li>
<a class="<?php echo ($userProject->id == $project_id) ? 'active' : '';?>"href="<?php echo Yii::app()->createUrl('user/activity', array(
'user_id'=>$user->id,
'project_id'=>$userProject->id,
'date'=>$date)
); ?>"><?php echo $userProject->name; ?></a>
</li>
<?php endforeach; ?>
<?php foreach ($projects as $userProject) : ?>
<li>
<a class="<?php echo ($userProject->project_id == $project_id) ? 'active' : '';?>"href="<?php echo Yii::app()->createUrl('user/activity', array(
'user_id'=>$user->id,
'project_id'=>$userProject->project->id,
'date'=>$date)
); ?>"><?php echo $userProject->project->name; ?></a>
</li>
<?php endforeach; ?>
</ul>

Как изменить его в выпадающий список, используя CHtml::dropDownList, Спасибо за просмотр!

1

Решение

Во-первых, вам нужно определить массив ключ-значение следующим образом:

$options = array();
<?php foreach ($ownProjects as $userProject)
array_push($options, array($userProject->id => $userProject->name));
?>

echo CHtml::dropDownList('seletName', '1', $options);

Это будет производиться HTML <select> тег с именем «seletcName». А также будет выбран вариант со значением «1». Вы можете использовать желаемое значение для первого и второго параметров.
Также вы можете использовать # DROPDOWNLIST виджет CActiveForm для этого.

1

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

В вашей форме используйте функцию dropDownList ().

<?php echo $form->dropDownList(
$model,
'project_id',
CHtml::listData(OwnProjects::model()->findAll(),
'id', 'name'),
array('empty' => '(Select project)','class'=>"form-control")
);
?>

Из вашего примера, похоже, что OwnProjects не является моделью, а является подмножеством модели. Вы можете настроить запрос

<?php echo $form->dropDownList(
$model,
'project_id',
CHtml::listData(OwnProjects::model()->findAllByAttributes(array('user_id'=> Yii:app()->user->id),
'id', 'name'),
array('empty' => '(Select project)','class'=>"form-control")
);
?>
1

Это решение, наконец, помогает мне:

<?php  $options = array();
foreach ($projects as $userProject) :
$options[$userProject->id] = $userProject->project->name;
endforeach;

echo CHtml::dropDownList('selectName', '1', $options);
?>
0
По вопросам рекламы [email protected]