我有表types
,我希望使用此表中的所有值构建selectbox
在我的控制器中我写了这段代码
$allRegistrationTypes = RegistrationType::model()->findAll();
$this->render('index', array('allRegistrationTypes' => $allRegistrationTypes))
如何在视图文件中构建selectbox?
答案 0 :(得分:6)
那么它非常简单你需要做的就是首先创建像
这样的列表数据CHtml::ListData(allRegistrationTypes,'value you want to pass when item is selected','value you have to display');
for ex
typeList = CHtml::ListData(allRegistrationTypes,'id','type');
现在请记住 ID和类型是表格中的字段
现在你所要做的就是使用表格
<?php echo $form->dropDownList($model, 'type_id', $typeList, array('empty'=>'Select a tyoe')); ?>
如果您需要多个,则可以将数组中的multiple => multiple
作为htmlOptions
答案 1 :(得分:2)
如果存在“父”模型并且您想利用其验证规则,则可以使用CHtml::dropDownList
或activeDropDownList
。
如果您想使<select>
元素具有多选功能,请将'multiple' => 'multiple'
和'size' => X
作为$htmlOptions
参数的一部分传递。
答案 2 :(得分:1)
在YII框架中获取“选择框”的最简单方法:
<div class="row">
<?php
echo $form->labelEx($model,'county');
$data = CHtml::listData(County::model()->findAll(), 'id', 'county');
$htmlOptions = array('size' => '1', 'prompt'=>'-- select county --', );
echo $form->listBox($model,'county', $data, $htmlOptions);
echo $form->error($model,'county');
?>
</div>
祝你好运..