zoukankan      html  css  js  c++  java
  • Yii2下拉框实现

    详细介绍yii2下拉框的实现方法,以商品分类的下拉框为例:

    第一种方法:使用Html的activeDropDownList(),该方法的优点是:可以自定义下拉框的样式。具体实现如下:

    1.控制器中,获取视图中所需的数据

        public function actionList(){
            $category_model=new Category();
            $category_info=$category_model->find()->all();
            return $this->renderPartial('list',['category_info'=>$category_info,'category_model'=>$category_model]);
        }

    2.视图中,use yiihelpersHtml;

    <?php $form = ActiveForm::begin([]);?>
        <?php echo Html::activeDropDownList($category_model,'category_name',ArrayHelper::map($category_info,'category_id','category_name'),['style'=>'border:1px solid    gray;150px;'])?>           
    <?php ActiveForm::end(); ?>

    3.这样之后,表单的下拉框名称是:Category Name,如果要改变这个值,在控制器对应的模型中使用attributeLabels()方法,具体如下:

     

      public function attributeLabels(){
            return array(
                'category_name'=>'分类',
            );
        }

    第二种方法:使用ActiveForm的dropDownList(),优点是使用的yii自定义的样式,也可以自定义样式

    1.控制器中获取视图中需要的数据

    2.视图中,use yiihelpersHtml;
    use yiiwidgetsActiveForm;
    use yiihelpersArrayHelper;

    <?php $form = ActiveForm::begin([]);?>
        <?php echo $form->field($category_model,'category_name')->dropDownList(ArrayHelper::map($category_info,'category_id','category_name'),['style'=>'border:1px solid blue;150px;'])?>           
    <?php ActiveForm::end(); ?>

    补充:该方法也可以自定义样式:具体如上代码

    注意:如果要在下拉框的首项添加‘请选择’、‘全部’等默认的值。用prompt,代码如下:

     <?php echo $form->field($brand_model,'brand_name')->dropDownList(ArrayHelper::map($brand_info,'brand_id','brand_name'),['prompt'=>'全部'])?>  

    各参数说明:

    ArrayHelper::map()------------生成k=>v的一维或多维数组

    $category_info----------------后台获取的数据

    category_id-------------------option的value值

    category_name---------------select 的name值

  • 相关阅读:
    廖雪峰Java10加密与安全-1数据安全-1加密与安全概念
    廖雪峰Java9正则表达式-2正则表达式进阶-6搜索和替换
    廖雪峰Java9正则表达式-2正则表达式进阶-5非贪婪匹配
    (1)结构体问题(哎,困扰很久了)
    5)蟠桃计,但是涉及一个变量初始化位置问题
    4)mysqlDB
    2)header的使用
    )ASCII比较大小
    3)大数相加问题
    2)处理用空格的字符串输入
  • 原文地址:https://www.cnblogs.com/xlz307/p/3853721.html
Copyright © 2011-2022 走看看