从Yii中的CActiveRecord中选择或下拉列表

时间:2012-07-04 07:56:16

标签: php yii yii1.x

我有表types,我希望使用此表中的所有值构建selectbox 在我的控制器中我写了这段代码

$allRegistrationTypes = RegistrationType::model()->findAll();
$this->render('index', array('allRegistrationTypes' => $allRegistrationTypes))

如何在视图文件中构建selectbox?

3 个答案:

答案 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::dropDownListactiveDropDownList

如果您想使<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>

祝你好运..