2012-07-04 2 views
3

У меня есть таблица types и я хочу, чтобы построить selectbox со всеми значениями из таблицы В моем контроллере я написал этот кодВыберите или Выпадающий список из CActiveRecord в Yii

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

Как построить переключатель в файле представление?

+0

selectbox означает множественный выбор из dropdownList? –

+0

@AfnanBashir no its simple dropdownlist – yAnTar

ответ

6

Ну тогда его довольно просто все, что вам нужно сделать, это сначала создать список данных, как

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

для экс

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

теперь вспомните как идентификатор и тип полей в таблице

сейчас все, что вам нужно сделать, если вы используете форму, то

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

и если вам нужно множественным вы можете передать multiple => multiple в массиве как htmlOptions

+0

Спасибо. Хорошее решение. – yAnTar

+0

приветствую удачу –

2

Вы должны использовать CHtml::dropDownList или activeDropDownList, если есть «родительская» модель, и вы хотите использовать ее правила проверки.

Если вы хотите, чтобы сделать <select> элемент множественного выбора с поддержкой, проходят в 'multiple' => 'multiple' и 'size' => X как часть параметра $htmlOptions.

1

Самый простой способ получить "Select Box" в YII Framework:

<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> 

удачи ..