在用gridview时,大家都注意到了,列表的开头有现成的复选框,这肯定是批量操作中用到的,今天就来介绍一下,gridview中的批量操作,简直简单的不行,效果图如下:

前端页面只需要改这几个地方即可,

1、gridview设置options时增加一个id 这里我们命名grid。

2.columns增加选项复选框,批量删除必然不可少了复选框操作,这里我们的name值设定为id,方便对数据操作,代码如下'options' =>['id'=>'grid'],

'columns' => [

[

'class' => 'yii\grid\CheckboxColumn',

'name'=>'id',

],//复选框列

3、页面上我们增加一个批量删除按钮,注意这里我们增加了一个class gridviewdelete,方便后面js实现点击效果= Html::a('批量删除', "javascript:void(0);", ['class' => 'btn btn-primary gridviewdelete']) ?>

4、最后一步,写js实现按钮操作,我们很轻松的就拿到了选中的行的id,然后这里就可以异步操作数据了。$script = <<

if(confirm('您确定要删除吗?')){

var keys = $("#grid").yiiGridView("getSelectedRows");

$.ajax({

url: '/food/batchdelete',

data: {ids:keys},

type: 'post',

success: function (t) {

t = JSON.parse(t);

if (t.status == 1) {

window.location.href= window.location.href;

}

},

error: function () {

alert("删除失败!")

}

})

}

});

SCRIPT;

$this->registerJs($script);

?>

5.post传给控制器的是一个数组,这里我写了一个批量操作的方法,一块贴出来,这里的删除为逻辑删除public function actionBatchdelete(){

$this->enableCsrfValidation = false;//去掉yii2的post验证

$ids = Yii::$app->request->post();

$model = new Product();

if($model->batchHandle($ids['ids']))

return \yii\helpers\Json::encode(['status'=>1,'info'=>'删除成功!']);

else

return false;

}

其中batchHandle为批量操作的方法:public function batchHandle($ids = [],$status = 3){

foreach ($ids as $k=>$v){

$model = $this->has(['id'=>$v]);

$model->status = $status;

if(!$model->save(false))

return new BadRequestHttpException('操作失败!');

}

return true;

}

//其中has方法如下:

public function has($where=[], $field='*') {

$result = $this->_query

->select($field)

->where($where)

->one();

return empty($result) ? false : $result;

}

批量操作就这样完成了,是不是很简单,gridview中的一些使用方法也算是总结的差不多了,希望能帮助到大家!该睡觉了!

yii 全选 php,yii2中gridview使用技巧小结(四)——全选等批量操作相关推荐

  1. Asp.net中GridView使用详解(很全,很经典 转来的)

    GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠 ...

  2. react 全选反选_js中怎么将createElement出来的复选框实现全选,全不选,反选效果?...

    const checkBoxs = ["篮球","足球","羽毛球","乒乓球"]; const creactCheck ...

  3. asp.net 中GridView控件实现全选及反选的功能

    大家都知道邮箱里面有全部删除邮件的复选按钮,其实还是比较简单哈! 废话嘛!就不说那么多了,我先给大家讲哈功能的实现. 首先,拖一个GridView控件和SqlDataSource控件,配置数据源. 然 ...

  4. GridView 实现服务器端和客户端全选的两种方法

    代码很简单,这里就不累述了.看代码如下: C# GridView 实现服务器端和客户端全选的两种方法 全选 转载于:https://www.cnblogs.com/rocky99261/archive ...

  5. yii引入php文件,Yii2框架中CSS、JS文件引入要领_PHP开发框架教程

    在yii2中,因为yii2版本升级致使了,许多yii2的用法跟yii1有着很大的区分,这几天一直在view层的视图界面徜徉着,碰到什么问题呢? (引荐进修:yii框架) 问题就是搞不清我该怎样去引入C ...

  6. elementui中el-table实现翻页、全选

    问题描述 在最近的一个项目中,我需要实现表格的翻页,并且还要实现全选.多选功能 众所周知,el-checkbox默认样式不好改,所以在这里我没有用elementui中的多选框,用的是<input ...

  7. Asp.net中GridView使用详解(引)【转】

    Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...

  8. 别名(Alias)-Yii 约定-深入理解YII2.0(2.2)

    别名(Alias) 可以将别名视为特殊的常量变量,他的作用在于避免将一些文件路径.URL以硬编码的方式 写入代码中,或者多处出现一长串的文件路径.URL. 预定义的别名 Yii中,别名以 @ 开头,以 ...

  9. php dropdownlist,Yii2中DropDownList简单用法示例

    本文实例讲述了Yii2中DropDownList简单用法.分享给大家供大家参考,具体如下: 这里以实际应用为例讲解Yii2 DropDownList用法. 有一张分类表,无限极分类那种,表结构如下,p ...

最新文章

  1. Java 使用线程池ThreadPool:newFixedThreadPool
  2. vue切换菜单时不需要页面刷新_antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作...
  3. 上传更新的代码到gitlab
  4. 2021年互联网租房行业洞察报告
  5. Atitit 手机图片备份解决方案attilax总结
  6. 70周年国庆,34个省级行政区前来祝贺
  7. 机械专业怎么学matlab,MATLAB在机械类专业课教学中的应用
  8. 快速清理C盘的四个方法
  9. 1.1 波士顿房价预测
  10. 清明时节雨纷纷,心思却剪不断,理还乱
  11. mac 访问局域网其他电脑上的虚拟机
  12. 套接字的连接(服务器与客户端一对一的连接)
  13. ppt文字磨砂玻璃效果制作教程
  14. codeproject资源集合贴
  15. 20145212罗天晨 后门原理与实践
  16. 一次java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession异常解决
  17. Vue项目学习(2)
  18. [How-to] Screen命令的使用
  19. matlab迭代实验总结,实验报告二
  20. java jtable 分页_Jtable分页查询完整实现

热门文章

  1. ASP.NET页面指令
  2. 小米6自动重启android,小米6充电重启怎么办 小米6充电自动重启解决方法
  3. lua 获取时分秒_PMON学用命令
  4. windows下的工具链 树莓派_7. windows下 influxDB 操作工具 InfluxDBStudio
  5. 利用函数wavread对语音信号进行采样_语音识别第4讲:语音特征参数MFCC
  6. 【栈】栈的基本操作实现模板的总结
  7. 通过 Docker 部署 Redis 6.x 集群
  8. 禁止套娃!Redis官网宕机,返回“连接不上Redis”
  9. 假如,只是假如把支付宝存储服务器炸了,里面的钱还在么?
  10. 蓝桥杯-矩阵乘法(java)