3

テーブルがtypesあり、このテーブルのすべての値を使用してビルドselectboxしたいコントローラーでこのコードを記述しました

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

ビューファイルでselectboxを構築するにはどうすればよいですか?

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::dropDownListactiveDropDownList、「親」モデルがあり、その検証ルールを活用したい場合に使用します。

<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 に答える