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值

  • 相关阅读:
    记周日一次故障意外
    每周一坑-【3月第1周】
    关于计划任务的一个小需求-优化篇
    400篇博客的一个里程碑
    关于计划任务的一个小需求-实现篇
    关于计划任务的一个小需求
    微服务优雅停机研究
    NSUInteger设为负数
    Mac上运行第一个Flutter项目
    Vue filtersfilter、computed、methods、watch对比
  • 原文地址:https://www.cnblogs.com/xlz307/p/3853721.html
Copyright © 2011-2022 走看看