YII下拉菜单的默认选择值. [ 新手入门 ]
控制器
public function getViewStateArr() {
return array(
'1' => '完全公开',
'2' => '完全不公开',
'3' => '仅对本站公开',
);
}
public function getViewText($v) {
$ViewState = $this->getViewStateArr();
if (isset($ViewState[$v])) {
return $ViewState[$v];
} else {
return '未设置';
}
视图:
<div class="row">
<?php echo $form->labelEx($model, 'is_view'); ?>
<?php
echo $form->dropDownList($model, 'is_view', $this->ViewStateArr, //array('empty'=>'- 请选择 -','0'=>'完全不公开','完全公开','仅对本站公开'),
array(
'empty' => '- 请选择 -',
'options' => array(
'empty'=> array('selected'=>'selected'),
)
)
); ?>
<?php echo $form->error($model, 'is_view'); ?>
</div>
如果使用 'empty' => '- 请选择 -',来生成一个- 请选择 -项时,这个为空,在模型中验证是可以通过的,模型验证规则是:
array('is_view, update_time, create_user_id, update_user_id', 'numerical', 'integerOnly'=>true),
'empty'=> array('selected'=>'selected'),
这个也是不生效的.如果有empty,只能生成$value这样子(看代码中是产生这个) 还有一个问题就是,如果列表的数组是由0开始的,则默认选择了0这个值的那一项. 根据现在这个情况,如何让他默认选择在值为Empty的项上?验证的时候,如何保证这个为空值的也不对呢?
共 10 条回复
-
可以是数字,在他的前一条规则上写上必选就可以的. 另外是不是验证规则也是按一条条前后顺序执行的?
验证规则是下面这样的.public function rules() { return array( array('resume_name,is_view', 'required'), array('is_view, update_time, create_user_id, update_user_id', 'numerical', 'integerOnly'=>true), array('resume_name', 'length', 'max'=>50), array('create_time', 'length', 'max'=>10), array('realname', 'length', 'max'=>16), array('id, resume_name, is_view, create_time, update_time, create_user_id, update_user_id, realname', 'safe', 'on'=>'search'), ); }
caridy
注册时间:2011-05-19
最后登录:2022-07-01
在线时长:3小时53分
最后登录:2022-07-01
在线时长:3小时53分
- 粉丝6
- 金钱480
- 威望0
- 积分510