CHtml类参考:

http://www.yiichina.com/api/CHtml#activeDropDownList-detail

activeDropDownList() 方法
public static string activeDropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array ( ))
$model CModel 数据模型
$attribute string 属性
$data array 生成列表选项的数据(值=>显示) 你可以使用listData来生成这个数据。请参阅listOptions来了解这个数据如何生成列表数据。注意,这里的值个标签会自动被这个方法进行HTML编码。
$htmlOptions array 附加的HTML属性。除了正常的HTML属性外,一些特殊的属性也是可以的(请参阅clientChangetag来了解更多详细信息。) 此外,下面的这属性也被支持:

  • encode: 布尔值,是否对值进行编码。默认为true。
  • prompt: 字符串,指定的作为第一个列表选项的提示文本。它的值为空。注意,提示文本不会被HTML编码。
  • empty: 字符串,指定空选项的文本,它的值为空。 'empty'选项也可以是一个值-标签对形式的数组。在一开始每个对都会用于渲染一个列表的选项。注意,文本标签不会被HTML编码。
  • options: 数组,为每个OPTION标签额外指定的属性。 数组的键名必须是选项的值, 数组的键值是选项标签的额外的属性,名称-值对的形式。例如,
        array(
    'value1'=>array('disabled'=>true, 'label'=>'value 1'),
    'value2'=>array('label'=>'value 2'),
    );
{return} string 生成的下拉列表

源码: framework/web/helpers/CHtml.php#1399 (显示)

为一个模型属性生成一个下拉列表。 如果该属性有输入错误, 输入栏的CSS类会被附加上errorCss

listData() 方法
public static array listData(array $models, string $valueField, string $textField, string $groupField='')
$models array 模型对象的列表。 这个参数也可以是一个关联的数组(例如CDbCommand::queryAll的结果)。
$valueField string 列表选项值的属性名
$textField string 列表选项文本的属性名
$groupField string 列表选项组的属性名。如果是空,将不会生成组。
{return} array 可用于dropDownListlistBox等的列表数据。

为列表型HTML元素生成适当的数据。 生成的数据可用于dropDownListlistBoxcheckBoxListradioButtonList,和它们的加强版(比如activeDropDownList). 注意,这个方法不会对生成的数据HTML编码。 如果需要的话你可以调用encodeArray来给它编码。 请参阅value方法来了解如何指定值字段,文本字段以及组字段。

下面上代码:

生成下拉列表

Model中:

    public function getRoleList()
{
$returnArr = $this->findAll();
return CHtml::listData($returnArr, 'role', 'role'); //后两项为字段名,分别对应option的value和name
//return CHtml::listData($returnArr, 'cat_id', 'cat_name'); /*
//如果不使用CHtml::listData,也可以手动生成如下形式的数组
$returnArr = array(
'admin' => '管理员',
'user' => '普通用户',
);
return $returnArr;
*/
}

View中:

    <div class="row">
<?php echo $form->dropDownList($model,'role',User::model()->getRoleList(), array('prompt'=>'-请选择角色-')); ?>
</div>

完整示例:

form表单


下拉列表
Views中:
<?php echo $form->dropDownList($model,'cate_id',Category::model()->getCategoryList()); ?>
Models中:
public function getCategoryList()
{
$returnArr = $this->findAll();
return CHtml::listData($returnArr, 'cate_id', 'cate_name');
} 查询列表
Models中:
public function getCateName($id)
{
$currCate = $this->findByAttributes(array('cate_id'=>$id));
return $currCate->cate_name;
}
Views中: (admin.php)
//'cate_id',
array('name'=>'cate_id', 'value'=>'Category::model()->getCateName($data->cate_id)', 'filter'=>Category::model()->getCategoryList()),

生成多级联动下拉菜单请参考:

http://blog.csdn.net/dreamzml/article/details/8642229

http://www.jems.me/blog/web/84-yii-create-dropdown-lists-for-related-ar.html

http://blog.csdn.net/littlebearwmx/article/details/8566368

http://qoophp.com/archives/237

Yii 生成表单下拉选框及查询下拉选框的更多相关文章

  1. vue动态生成表单

    vue动态生成表单 一.下拉框 <!DOCTYPE html> <html> <head> <meta charset="utf-8" / ...

  2. 表单组件 form fastadmin(生成表单元素)

    Form组件 定义文件位置: /extend/fast/Formphp 通用参数 $name 通常为我们组件的名称(name属性值),我们在后台接收时可以通过这个名称来获取到它所对应的值 $value ...

  3. yii2自动生成表单

    视图中: 1.要use的两个文件类 use yii\helpers\Html;   use yii\widgets\ActiveForm; 2.生成表单,以添加商品为例说明.注意红线区域:上传文件需要 ...

  4. 基于PHP和mysql的自动生成表单

    开发背景:公司要求管理系统能够由管理员在前台页面管理系统表单,能够对表单进行增删改查基本操作,表单的各个字段都可以被修改.删除,可以添加新的字段,并且不影响系统正常运行,前台表单展示要由系统自动处理, ...

  5. java自动生成表单简单实例

    数据库表设置 tb_form(form表单) 字段 类型 约束 说明 Id Int 主键 主键 Formid Varchar2(20) 唯一 Form表单id的值 Action Varchar2(20 ...

  6. vue自定义表单生成器,可根据json参数动态生成表单

    介绍 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue 组件.结合内置17种常用表单组件和自定义组件,再复杂的表单都可 ...

  7. html-4, form 表单 输入、传文件、单选、多选、下拉菜单、文本描述、重置、submit、按钮限制输入

    <!-- form HTTP协议 action:提交的服务器网址 method:get(默认)| post(应用:登录注册.上传文件) 页面中的a img link 默认是get请求 input ...

  8. Yii 2.0 ActiveForm生成表单 ,控制表单label和filed样式,filed一旦报错,前面lable颜色跟着变,看图,帮你解决

    需要生成如下图的表单样式,图一:

  9. 基于react hooks,antd4 配置生成表单并自动排列

    react后台项目,大多都是表单处理,比如下列4种常见1*n布局 (如果手工编码,大量的Row,Col, Form.Item的嵌套,排列,如果加上联动处理,代码将十分臃肿,不易维护) 一行一列 一行两 ...

随机推荐

  1. sublime2 Ctags 快捷键

    Commands Listing Command Key Binding Alt Binding Mouse Binding rebuild_ctags ctrl+t, ctrl+r     navi ...

  2. CentOS安装+配置+远程

    这篇博客我之前写在了csdn,转了过来,这篇是自己认为写的比较有技术含量的文章^_^ 最近和CentOS打了交到,其中遇到了很多问题,于是看了一些博客,解决了一些问题,但是都不是特别全面,所以想来一篇 ...

  3. 为 DataGridView 控件添加行号

    虽然好像不经常用到,不过还是记下来防止以后用到 /// <summary> /// 为 DataGridView 控件添加行号 /// </summary> /// <p ...

  4. jQuery登陆判断简单实现代码

    登陆判断在实际应用中还是比较常见,在客户端执行判断可以减少服务器端的负担,感兴趣的朋友可以参考下 复制代码代码如下: <script src="jquery-1.9.1.js" ...

  5. ECMAScript 5正式发布

    这周ECMAScript 5也即众所周知的JavaScript正式发布了(pdf),在给基本库带来更新的同时,还引入了更加严格的运行时模型,来帮助定位并移除通常的代码错误. 而早期对于ECMAScri ...

  6. 用Python实现的一个简单的随机生成器

    朋友在ctr工作,苦于各种排期神马的,让我帮他整一个xxxx管理系统 里面在用户管理上面需要有一个批量从文件导入的功能,我肯定不能用汉字来作唯一性约束,于是想到了随机生成. 我首先想到的是直接用ite ...

  7. 用powerdesigner建模工具生成数据库

    1,使用powerdesignerP:主键 F:外键 M:是否可为空 2,两张表建立主外键关系时,主外键名称要相同.比如A表 A_id name  说明id(P) B表 B_id name  说明id ...

  8. 定时显示div

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org ...

  9. ios解决输入框弹出后position:fixed失效问题

    最近在使用AmazeUI进行仿App Mobile Web开发时遇到了讨论众多的position:fixed问题.position:fixed在安卓2.2以上已经实现,但是在ios8以下系统当小键盘激 ...

  10. jQuery实现iframe的自适应高度

    假设我们在当前页面要嵌套一个iframe 1 <iframe id="myframe" src="test.html" height="240& ...