Yii 生成表单下拉选框及查询下拉选框
CHtml类参考:
http://www.yiichina.com/api/CHtml#activeDropDownList-detail
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属性外,一些特殊的属性也是可以的(请参阅clientChange和tag来了解更多详细信息。) 此外,下面的这属性也被支持:
|
{return} | string | 生成的下拉列表 |
源码: framework/web/helpers/CHtml.php#1399 (显示)
为一个模型属性生成一个下拉列表。 如果该属性有输入错误, 输入栏的CSS类会被附加上errorCss。
public static array listData(array $models, string $valueField, string $textField, string $groupField='')
|
||
$models | array | 模型对象的列表。 这个参数也可以是一个关联的数组(例如CDbCommand::queryAll的结果)。 |
$valueField | string | 列表选项值的属性名 |
$textField | string | 列表选项文本的属性名 |
$groupField | string | 列表选项组的属性名。如果是空,将不会生成组。 |
{return} | array | 可用于dropDownList, listBox等的列表数据。 |
为列表型HTML元素生成适当的数据。 生成的数据可用于dropDownList, listBox, checkBoxList, radioButtonList,和它们的加强版(比如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 生成表单下拉选框及查询下拉选框的更多相关文章
- vue动态生成表单
vue动态生成表单 一.下拉框 <!DOCTYPE html> <html> <head> <meta charset="utf-8" / ...
- 表单组件 form fastadmin(生成表单元素)
Form组件 定义文件位置: /extend/fast/Formphp 通用参数 $name 通常为我们组件的名称(name属性值),我们在后台接收时可以通过这个名称来获取到它所对应的值 $value ...
- yii2自动生成表单
视图中: 1.要use的两个文件类 use yii\helpers\Html; use yii\widgets\ActiveForm; 2.生成表单,以添加商品为例说明.注意红线区域:上传文件需要 ...
- 基于PHP和mysql的自动生成表单
开发背景:公司要求管理系统能够由管理员在前台页面管理系统表单,能够对表单进行增删改查基本操作,表单的各个字段都可以被修改.删除,可以添加新的字段,并且不影响系统正常运行,前台表单展示要由系统自动处理, ...
- java自动生成表单简单实例
数据库表设置 tb_form(form表单) 字段 类型 约束 说明 Id Int 主键 主键 Formid Varchar2(20) 唯一 Form表单id的值 Action Varchar2(20 ...
- vue自定义表单生成器,可根据json参数动态生成表单
介绍 form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成器.并且支持生成任何 Vue 组件.结合内置17种常用表单组件和自定义组件,再复杂的表单都可 ...
- html-4, form 表单 输入、传文件、单选、多选、下拉菜单、文本描述、重置、submit、按钮限制输入
<!-- form HTTP协议 action:提交的服务器网址 method:get(默认)| post(应用:登录注册.上传文件) 页面中的a img link 默认是get请求 input ...
- Yii 2.0 ActiveForm生成表单 ,控制表单label和filed样式,filed一旦报错,前面lable颜色跟着变,看图,帮你解决
需要生成如下图的表单样式,图一:
- 基于react hooks,antd4 配置生成表单并自动排列
react后台项目,大多都是表单处理,比如下列4种常见1*n布局 (如果手工编码,大量的Row,Col, Form.Item的嵌套,排列,如果加上联动处理,代码将十分臃肿,不易维护) 一行一列 一行两 ...
随机推荐
- linux磁盘以及文件系统
df 查看磁盘总容量 -i 显示inodes号 -h 使用合适的单位显示磁盘大小 -m 以M为单位显示 -k 以K为单位显示 默认K显示 du 用来查看某个目录或者文件所占空间大小 参数:-abckm ...
- c#面向对象小结
特点: 1:将复杂的事情简单化. 2:面向对象将以前的过程中的执行者,变成了指挥者. 3:面向对象这种思想是符合现在人们思考习惯的一种思想. 过程和对象在我们的程序中是如何体现的呢?过程其实就是函数: ...
- wcf通道Channel
正文 客户端与服务进行交互的过程是通过通道进行交互的.客户端通过调用代理类执行相应的方法,通过通道编码,调用上下文,传输客户端的事务,管理可靠会话,对消息正文的加密,最后要执行的通道是传输通道就像我们 ...
- Tekla Structures 使用类库概览
Tekla Structures 2016 已经发布了,使用了 Ribbon 的全新 UI 风格,比以前要漂亮许多. 不过功能方面貌似没啥大的改进,感觉天宝的主要精力都投入到了混凝土模块上,忙着和别人 ...
- qt5 基础知识
QWidget wQLineEdit edit; edit.show(); //如果没有这句,编辑框edit将会显示在父窗口的左上角edit.setParent(&w); //以w为父窗口并显 ...
- Linq语句与aspnetpager结合分页
public void DataBindList() { List<EnDeContent> listCon = null; in ...
- mysql 时间字段的函数 timestamp
Mysql 里格式 时间字段的函数 DATE_FORMAT unix_timestamp - 墨墨修行的日志 - 网易博客http://jjuanxi.blog.163.com/blog/static ...
- python 遍历字典
dict={"a":"apple","b":"banana","o":"orange&qu ...
- Linux下fork()、vfork()、clone()和exec()的区别
转自Linux下fork().vfork().clone()和exec()的区别 前三个和最后一个是两个类型.前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定 ...
- 查看Mac OSX机器上存在的所有Device
可以使用instruments -s来查看Mac OSX机器上存在的所有Device,包括模拟器创建的Device以及真实连接的iPad,iPhone等设备.