yii 全选 php,yii2中gridview使用技巧小结(四)——全选等批量操作
在用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使用技巧小结(四)——全选等批量操作相关推荐
- Asp.net中GridView使用详解(很全,很经典 转来的)
GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠 ...
- react 全选反选_js中怎么将createElement出来的复选框实现全选,全不选,反选效果?...
const checkBoxs = ["篮球","足球","羽毛球","乒乓球"]; const creactCheck ...
- asp.net 中GridView控件实现全选及反选的功能
大家都知道邮箱里面有全部删除邮件的复选按钮,其实还是比较简单哈! 废话嘛!就不说那么多了,我先给大家讲哈功能的实现. 首先,拖一个GridView控件和SqlDataSource控件,配置数据源. 然 ...
- GridView 实现服务器端和客户端全选的两种方法
代码很简单,这里就不累述了.看代码如下: C# GridView 实现服务器端和客户端全选的两种方法 全选 转载于:https://www.cnblogs.com/rocky99261/archive ...
- yii引入php文件,Yii2框架中CSS、JS文件引入要领_PHP开发框架教程
在yii2中,因为yii2版本升级致使了,许多yii2的用法跟yii1有着很大的区分,这几天一直在view层的视图界面徜徉着,碰到什么问题呢? (引荐进修:yii框架) 问题就是搞不清我该怎样去引入C ...
- elementui中el-table实现翻页、全选
问题描述 在最近的一个项目中,我需要实现表格的翻页,并且还要实现全选.多选功能 众所周知,el-checkbox默认样式不好改,所以在这里我没有用elementui中的多选框,用的是<input ...
- Asp.net中GridView使用详解(引)【转】
Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...
- 别名(Alias)-Yii 约定-深入理解YII2.0(2.2)
别名(Alias) 可以将别名视为特殊的常量变量,他的作用在于避免将一些文件路径.URL以硬编码的方式 写入代码中,或者多处出现一长串的文件路径.URL. 预定义的别名 Yii中,别名以 @ 开头,以 ...
- php dropdownlist,Yii2中DropDownList简单用法示例
本文实例讲述了Yii2中DropDownList简单用法.分享给大家供大家参考,具体如下: 这里以实际应用为例讲解Yii2 DropDownList用法. 有一张分类表,无限极分类那种,表结构如下,p ...
最新文章
- Java 使用线程池ThreadPool:newFixedThreadPool
- vue切换菜单时不需要页面刷新_antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作...
- 上传更新的代码到gitlab
- 2021年互联网租房行业洞察报告
- Atitit 手机图片备份解决方案attilax总结
- 70周年国庆,34个省级行政区前来祝贺
- 机械专业怎么学matlab,MATLAB在机械类专业课教学中的应用
- 快速清理C盘的四个方法
- 1.1 波士顿房价预测
- 清明时节雨纷纷,心思却剪不断,理还乱
- mac 访问局域网其他电脑上的虚拟机
- 套接字的连接(服务器与客户端一对一的连接)
- ppt文字磨砂玻璃效果制作教程
- codeproject资源集合贴
- 20145212罗天晨 后门原理与实践
- 一次java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession异常解决
- Vue项目学习(2)
- [How-to] Screen命令的使用
- matlab迭代实验总结,实验报告二
- java jtable 分页_Jtable分页查询完整实现
热门文章
- ASP.NET页面指令
- 小米6自动重启android,小米6充电重启怎么办 小米6充电自动重启解决方法
- lua 获取时分秒_PMON学用命令
- windows下的工具链 树莓派_7. windows下 influxDB 操作工具 InfluxDBStudio
- 利用函数wavread对语音信号进行采样_语音识别第4讲:语音特征参数MFCC
- 【栈】栈的基本操作实现模板的总结
- 通过 Docker 部署 Redis 6.x 集群
- 禁止套娃!Redis官网宕机,返回“连接不上Redis”
- 假如,只是假如把支付宝存储服务器炸了,里面的钱还在么?
- 蓝桥杯-矩阵乘法(java)