浅析Yii2 GridView实现下拉搜索教程

废话不多说了,先给大家展示下效果图,如果大家还很满意请继续往下阅读:

具体怎么实现喃?考虑到一张数据表要下拉效果的字段可能有很多个,我们先在其model中实现一个方法方便后续操作

/**
* 下拉筛选
* @column string 字段
* @value mix 字段对应的值,不指定则返回字段数组
* @return mix 返回某个值或者数组
*/
public static function dropDown ($column, $value = null)
{
$dropDownList = [
'is_delete'=> [
'0'=>'显示',
'1'=>'删除',
],
'is_hot'=> [
'0'=>'否',
'1'=>'是',
],
//有新的字段要实现下拉规则,可像上面这样进行添加
// ......
];
//根据具体值显示对应的值
if ($value !== null)
return array_key_exists($column, $dropDownList) ? $dropDownList[$column][$value] : false;
//返回关联数组,用户下拉的filter实现
else
return array_key_exists($column, $dropDownList) ? $dropDownList[$column] : false;
}

然后我们上代码看看具体怎么实现的下拉搜索

<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
// ......
[
'attribute' => 'is_hot',
'value' => function ($model) {
return Article::dropDown('is_hot', $model->is_hot);
},
'filter' => Article::dropDown('is_hot'),
],
[
'attribute' => 'is_delete',
'value' => function ($model) {
return Article::dropDown('is_delete', $model->is_delete);
},
'filter' => Article::dropDown('is_delete'),
],
// ......
],
]); ?>

像这样,我们就简单地实现了两个下拉效果,要实现筛选功能,在你的dataProvider自定添加该字段的搜索条件即可。

我们推荐阅读:

浅析Yii2中GridView常见操作

yii2 页面底部加载css和js的技巧

浅析Yii2 GridView 日期格式化并实现日期可搜索教程

浅析Yii2 GridView实现下拉搜索教程

关于Yii2 GridView实现下拉搜索教程就给大家介绍这么多,希望对大家有所帮助!

(0)

相关推荐

  • yii2.0之GridView自定义按钮和链接用法

    本文实例讲述了yii2.0之GridView自定义按钮和链接用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <?= GridView::widget([         'dataProvider' => $dataProvider,         //'filterModel' => $searchModel,         'columns' => [             ['class' => 'yii\grid\SerialColumn'

  • 浅析Yii2中GridView常见操作

    本文是小编给大家收集整理些有关网络上GridView出现的大部分问题,本文做一个总结特此分享到我们平台供大家参考. 如果下面有没说到的GridView常见问题,下方留言,我会进行补充. 下拉搜索 日期格式化并实现日期可搜索 根据参数进行是否显示 链接可点击跳转 显示图片 html渲染 自定义按钮 设定宽度等样式 自定义字段 自定义行样式 增加按钮调用js操作 yii2 GridView 下拉搜索实现案例教程 yii2 GridView 日期格式化并实现日期可搜索 案例 是否显示某列案例 我们举一

  • 浅析Yii2 gridview实现批量删除教程

    在朋友圈里有童鞋向我讨论GridView的问题,有朋友说你用gridview给我去掉表头的链接?我想的很久,用gridview确实不容易实现.有不同见解的朋友欢迎留言.但是呢,这根gridview有个毛线关联啊,明明是要设置ActiveDataProvider,你要我怎么用gridview实现嘛. 这个问题也是很简单的,我们来看看具体实现 $dataProvider = new ActiveDataProvider([ 'query' => $query, ]); $dataProvider->

  • Yii2 GridView实现列表页直接修改数据的方法

    什么意思呢?我来简单的描述下,小编妹子提的需求是这样的,你看啊,你这列表页的数据,能不能我就直接在列表上进行点一下就直接修改啊,我再点进去修改多麻烦,太不方便了.这尼玛,这需求,是不是真想给她一棒槌. ok,我们今天就来看看在yii2中如何去利用gridview实现列表上直接修改的功能,很全面哦,我们尽量各种类型的属性都给出实例. 第一步,我们先来部署好yii2-grid 利用composer安装yii2-grid composer require kartik-v/yii2-grid "@de

  • yii 2.0中表单小部件的使用方法示例

    前言 本文主要介绍的是关于yii 2.0中表单小部件使用的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 使用方法 首先创建model层,因为要使用表单小部件 所以要加载相应的组件,这里需要的组件有yii\widgets\ActiveForm yii\helpers\Html 接下来在model定义的class里 写方法,首先我们要定义需要使用表单小部件的name值 不多说上代码 <?php /** * Created by PhpStorm. * User: jinlei * Dat

  • Yii2.0小部件GridView(两表联查/搜索/分页)功能的实现代码

     GridView 两表联查/搜索/分页 当我们在一个网格视图中显示活动数据的时候,你可能会遇到这种情况,就是显示关联表的列的值,为了使关联列能够排序,你需要连接关系表,以及添加排序规则到数据提供者的排序组件中,对数据进行搜索,排序. Ⅰ.控制器层Controller <?php namespace backend\controllers; header("Content-type:text/html;charset=utf-8"); use Yii; use yii\web\C

  • 浅析Yii2 GridView实现下拉搜索教程

    废话不多说了,先给大家展示下效果图,如果大家还很满意请继续往下阅读: 具体怎么实现喃?考虑到一张数据表要下拉效果的字段可能有很多个,我们先在其model中实现一个方法方便后续操作 /** * 下拉筛选 * @column string 字段 * @value mix 字段对应的值,不指定则返回字段数组 * @return mix 返回某个值或者数组 */ public static function dropDown ($column, $value = null) { $dropDownLis

  • Yii2框架dropDownList下拉菜单用法实例分析

    本文实例讲述了Yii2框架dropDownList下拉菜单用法.分享给大家供大家参考,具体如下: dropDownList是yii框架中一个自带的下拉功能了解,我们可以直接使用dropDownList来实现html的select菜单,下面一起来看看. Yii2.0 默认的 dropdownlist 的使用方法. 复制代码 代码如下: <?php echo $form->field($model, 'name[]')->dropDownList(['a' => 'Item A', '

  • Yii2实现上下联动下拉框功能的方法

    本文实例讲述了Yii2实现上下联动下拉框功能的方法.分享给大家供大家参考,具体如下: 首先我先解释下什么是上下联动的下拉框 假如一个view里面有两个select,第一个是公司名,第二个是分公司名.公司有多个,每个公司又有多个分公司,我们实现的就是点击当前公司后,分公司里面显示的事当前公司的分公司. 或者你直接理解成选择所属省份后,下面的select显示的是当前省份的县. 原理: 点击第一个select后,执行ajax获取当前公司的分公司,并使用jQuery修改分公司内容 两个select的部分

  • bootstrap select下拉搜索插件使用方法详解

    bootstrap-select是boot的下拉搜索插件,使用的时候有时我们需要动态从后台 或者 直接加载动态数据. 下面是根据一级下拉菜单,动态加载二级联动方式.(不是ajax后台获取) 首先引入js与css文件(一个css两个js) <link rel="stylesheet" href="css/bootstrap-select.css" rel="external nofollow" > js省略 一.下拉搜索(html) &

  • 关于layui的下拉搜索框异步加载数据的解决方法

    思路分析:当我使用layui默认的下拉搜索框的时候,layui会默认渲染出一个HTML结构,所以我把渲染出来的这个结果直接给复制出来,这样css的样式就不用从头到尾写一遍了, 前端代码(我用的是jsp): <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC &quo

  • 浅析Yii2 GridView 日期格式化并实现日期可搜索教程

    先给大家展示下日期格式化效果图,如果大家满意请继续往下阅读: 这个我们分情况讨论 1.如果你的数据库字段created_at存的时间格式是date或者datetime,那很简单,gridview中直接输出该字段created_at即可,如上图中右侧所示 2.如果数据库存入的时间戳类型,如上图中左侧所示,则需要像下面这样进行输出 [ 'attribute' => 'created_at', 'value' => function ($model) { return date('Y-m-d H:i

  • jQuery插件实现可输入和自动匹配的下拉框

    实现可输入+带自动匹配功能的下拉框,我试过以下几种方法: 1.直接使用h5的新标签<datalist>,对应demo如下: <input list="browsers"> <datalist id="browsers"> <option value="Internet Explorer"> <option value="Firefox"> <option val

  • 在Angular中实现一个级联效果的下拉框的示例代码

    实现一个具有级联效果的下拉搜索框,实现的结果如下图所示 我们主要通过这个组件,来学习一些细微的逻辑,比如: 如何计算input框内文字的长度: 如何获取光标的位置:如何实现滚动条随着上下键盘的按动进行移动...... 具体需求如下 级联搜索最多不超过三级,以"."作为级联搜索的连接符 搜索框跟着文本框中的"."进行向后移动,向右移动的最大距离不能超过文本框的宽度 当用户修改之前的级联内容,则不进行搜索,并隐藏搜索框:若用户在之前输入的是".",

随机推荐