zoukankan      html  css  js  c++  java
  • Yii 生成表单下拉选框及查询下拉选框

    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

  • 相关阅读:
    c内存结构
    Linux普通文件和设备的异同点
    二分查找在字符串中的应用范例
    快排的一种相当简单但不算最快的实现方式
    C程序的存储空间布局
    exit与_exit
    /proc文件系统
    Linux下监控磁盘空间的四个命令
    linux下监控进程需掌握的四个命令
    linux终端下文件不同颜色的含义
  • 原文地址:https://www.cnblogs.com/imxiu/p/3451872.html
Copyright © 2011-2022 走看看