从数据库中自动填充yii中的dropDownListRow表单字段

时间:2014-08-08 10:35:06

标签: php yii multi-select dropdownlistfor

我有一个表格,在yii中有一些多选下拉菜单。在编辑数据时,我必须在该多选框中自动填充所选值。我正在获取数据并将其传递给视图文件,但我不确定如何填充下拉列表中的值。请帮帮我

以下是多选下拉列表的代码

echo $form->dropDownListRow($modelDomain, 'domain_id',  $domain, array('title' => Yii::t('main', 'SELECT_DOAMIN'),'multiple'=>true ,'style' => 'width:250px;height:150px;'));   

1 个答案:

答案 0 :(得分:0)

对于多项选择,您需要使用'options'参数:

echo $form->dropDownListRow($modelDomain, 'domain_id',  $domain, array('title' => Yii::t('main', 'SELECT_DOAMIN'),'multiple'=>true ,'style' => 'width:250px;height:150px;', 'options' => array(
1 => array('selected' => 'selected'),
2 => array('selected' => 'selected'),
))); 

其中1和2是取自$ _POST的域ID;

您可以在操作中执行此操作:

$post = $this->getRequest()->getPost('ModelName');
$selectedDomains = $post['domain_id']; // this should be an array or selected values
$selected = array_fill(0, count($selectedDomains), array('selected' => 'selected')); // this constructs the 'options' value from view
$selectedOptions = array_combine($selectedDomains, $selected) // this is the 'options' array with selected values as keys and htmlOptions as values

此外,代码未经测试,您需要自己进行验证和其他逻辑操作。