3

我有表types,我想selectbox用这个表中的所有值构建在我的控制器中我写了这段代码

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

如何在视图文件中构建选择框?

4

3 回答 3

6

那么它非常简单,您需要做的就是首先创建列表数据,例如

CHtml::ListData(allRegistrationTypes,'value you want to pass when item is selected','value you have to display');

例如

typeList = CHtml::ListData(allRegistrationTypes,'id','type');

现在记住id 和 type 都是表中的字段

现在你所要做的就是如果你正在使用表单那么

<?php echo $form->dropDownList($model, 'type_id', $typeList, array('empty'=>'Select a tyoe')); ?>

如果您需要多个,您可以将multiple => multiple数组作为 htmlOptions传递

于 2012-07-04T08:14:22.650 回答
2

您将使用CHtml::dropDownList, 或者activeDropDownList如果有一个“父”模型并且您想利用它的验证规则。

如果要使<select>元素具有多选功能,请传入'multiple' => 'multiple''size' => X作为$htmlOptions参数的一部分。

于 2012-07-04T08:00:41.143 回答
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>

祝你好运..

于 2013-07-24T12:28:38.970 回答