布局效果

布局代码

<button type="button" class="btn btn-sm btn-danger btn-erbi-danger" id="batchDel" style="margin-right:20px;">批量删除</button>
<tr>
<th><input id="checkAll" type="checkbox"></th>
<th>ID</th>
<th>所属公司</th>
<th>姓名</th>
<th>性别</th>
<th>身份证号</th>
<th>手机号</th>
<th>住址</th>
<th>备注</th>
<th>标签</th>
<th>创建时间</th>
<th>操作</th>
</tr>
<volist name="result" id="vo">
<tr data-id="{$vo.id}" data-table="company">
<td><input class="checkOne" type="checkbox" data-id="{$vo.id}"></td>
<td>{$vo.id}</td>
<td>{$vo.company_name}</td>
<td>{$vo.name}</td>
<td>{$vo.sex_str}</td>
<td>{$vo.id_card}</td>
<td>{$vo.telephone}</td>
<td>{$vo.address}</td>
<td>{$vo.remark}</td>
<td>{$vo.tag_str}</td>
<td>{$vo.create_time|date='Y-m-d H:i',###}</td>
<td>
<?php if (!$_SESSION['_admin_is_company']) { ?>
<a href="javascript:;" class="info_tag">标签</a>
<?php }?>
<a href="javascript:;" data-id="{$vo.id}" class="info_edit">编辑</a>
<a href="javascript:;" data-id="{$vo.id}" class="info_del">删除</a>
</td>
</tr>
</volist>

一个checkAll,一个checkOne。一个ID,一个Class。

增加全选反选事件

// 全选,反选
$("#checkAll").on('change', function () {
if ($(this).is(":checked")) { // 全选
$(".checkOne").prop("checked",true);
} else { // 反选
$(".checkOne").prop("checked",false);
}
});

增加删除事件,获取id

// 批量删除
$("#batchDel").on('click', function () {
var ids = []; // 获取选中的id
$('tbody input.checkOne').each(function (index, el) {
if ($(this).prop('checked')) {
ids.push($(this).data('id'))
}
}); layer.confirm('确认要删除吗?' + ids.toString(), function (index) {
//捉到所有被选中的,发异步进行删除
ajaxBatchDel(ids.toString());
});
}); // ajax批量删除
function ajaxBatchDel(ids) {
// ajax设置不通过
$.ajax({
type: 'POST',
url: 'ajaxBatchDel',
data: {ids: ids},
dataType: 'json',
success: function (data) {
if (data.errno == 0) {
layer.msg('删除成功', {icon: 1});
$(".checkOne:checked").parents('tr').remove();
} else {
layer.msg(data.errdesc, {icon: 5});
return false;
}
}
});
}

批量软删除

public function ajaxBatchDel() {
$ids = $_POST['ids'];
if (!$ids){
$this->json->setErr(10001,'请选择要删除的内容');
$this->json->Send();
} $employee = M('employee');
$flag = $employee->where(['id'=>['in',$ids]])->save(['status'=>0]);
if($flag){
$this->json->setErr(0, '删除成功');
$this->json->Send();
}else{
$this->json->setErr(10099, '删除失败');
$this->json->Send();
}
}

PHP 批量删除的实现的更多相关文章

  1. php批量删除

    php批量删除可以实现多条或者全部数据一起删除 新建php文件 显示数据库中内容: <table width="100%" border="1" cell ...

  2. confirm对话框取消后阻止ajax操作、ajax做批量删除

    在做批量删除的时候,需要用confirm弹出一个提示框让用户确认是否删除,点击确定,执行操作,点击取消,取消操作.但是如果使用ajax把选中项的主键值传到处理页面处理时,如果使用下面的方法将confi ...

  3. mybatis批量删除提示类型错误

    一. 这里主要考虑两种参数类型:数组或者集合. 而这点区别主要体现在EmpMapper.xml文件中标签的collection属性: 当collection="array"时,表名 ...

  4. php链接数据库 批量删除 和 注册审核

    理解 :  hiden   value    session   name="a[]"         1.  form  表单上传的 value=" "值   ...

  5. StackExchange.Redis加载Lua脚本进行模糊查询的批量删除和修改

    前言 使用StackExchange.Redis没有直接相关的方法进行模糊查询的批量删除和修改操作,虽然可以通过Scan相关的方法进行模糊查询,例如:HashScan("hashkey&qu ...

  6. Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新]

    [虽然说,开发的时候,我们可以使用各种框架,ado.net作为底层的东西,作为一个合格的程序员,在出问题的时候我们还是要知道如何调试] 一.增删改查 cmd.ExecuteReader();执行查询, ...

  7. MongoDB学习笔记~大叔分享批量添加—批量更新—批量删除

    回到目录 说它是批量操作,就是说将集合对象一次提交到服务器,并对数据进行持久化,如果您的代码是一次一次的提交,那不算是批量操作!在之前的mongodb仓储中并没有对批量更新和批量删除进行实现,而今天在 ...

  8. jdbc-批量插入、批量删除、批量更新

    一.JDBC的批量插入 JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等.    我用Mysql5.1.5的JDBC driver 分别对三种比较常用的方法做了测试   方法 ...

  9. 11月1日上午PHP批量删除

    1.在主页面上添加批量删除有关代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  10. Redis【知识点】批量删除指定Key

    Redis中有删除单条数据的命令DEL但是他没有批量删除多条数据的方法,那我们怎么去批量删除多条数据呢! 第一种方式 /work/app/redis/bin/redis-cli -a youpassw ...

随机推荐

  1. CF622F——自然数幂和模板&&拉格朗日插值

    题意 求 $ \displaystyle \sum_{i=1}^n i^k \ mod (1e9+7), n \leq 10^9, k \leq 10^6$. CF622F 分析 易知答案是一个 $k ...

  2. Can't generate API documentation in l5-swagger

    Can't generate API documentation in l5-swagger Ask Question Asked 3 months ago Active 1 month ago Vi ...

  3. 2019.12.06 java基础

    JRE:运行环境(包含JVM(Java Virtual Machine)- Java虚拟机和核心类库) JDK: JAVA语言的软件开发工具包(Java Development Kit) Dos命令行 ...

  4. 如何调试 Windows 服务

    概要 本文分步介绍了如何使用 WinDbg 调试程序 (windbg.exe) 调试 Windows 服务. 要调试 Windows 服务,可以在服务启动后将 WinDbg 调试程序附加到托管该服务的 ...

  5. Windows是如何将64位Ntdll映射到32位进程的---转自简书

    今天我们探索一个问题: 64位的ntdll是如何被加载到WoW64下的32位进程?今天的旅程将会带领我们进入到Windows内核逻辑中的未知领域,我们将会发现32位进程的内存地址空间是如何被初始化的. ...

  6. 认识Dump文件

    一.什么是Dump文件 又叫内存转储文件或者叫内存快照文件.是一个进程或系统在某一给定的时间的快照.比如在进程崩溃时或则进程有其他问题时,甚至是任何时候,我们都可以通过工具将系统或某进程的内存备份出来 ...

  7. C# await async Task

    //原文:https://www.cnblogs.com/yan7/p/8401681.html //原文:https://www.cnblogs.com/s5689412/p/10073507.ht ...

  8. python设计模式---绪论

    1.程序只是一个工具,只知道使用工具就有价值的时代正在过去:现在对工作质量.开发速度及完美程度都很重要了.当前主要的问题是对工具的充分利用,在生活的方方面面,简单任务之所以简单是由于这些任务不需要特殊 ...

  9. 解读 | 你真正理解什么是Cloud Native吗?

    你能做到每周.每天甚至每个钟头向客户发布新特性吗?新加入的开发者能够在他们工作的第一天甚至面试阶段就能部署代码吗?部署新员工的代码后,你能因为确信应用程序运行正常而安然入睡吗?建立快速发布机制,包括支 ...

  10. uboot中工具buildman的用法

    1. buildman简介 uboot源码中维护的一款多线程编译测试工具 2. buildman的用法 2.1 进入uboot的源码目录 $ cd <path of uboot> 2.2 ...