基于ThinkPHP实现批量删除

前端技术 2023/08/31 PHP

本文实例分析了基于ThinkPHP实现批量删除的代码实例,分享给大家供大家参考,具体如下:

废话不多说,先上效果图:


HTML布局(基于bootstrap)

<div class=\"panel panel-default\">
  <div class=\"panel-heading\">
    留言列表
    <a class=\"btn btn-xs btn-default pull-right\" href=\"javascript:window.history.back();\">返回</a>
    <a class=\"btn btn-xs btn-info pull-right mr-5\" id=\"discard\" href=\"javascript:;\">删除</a>
  </div>
  <table class=\"table\">
    <thead>
      <tr>
        <th><input class=\"all\" type=\"checkbox\"/></th>
        <th>id</th>
        <th>名称</th>
        <th>邮箱</th>
        <th>内容</th>
        <th>日期时间</th>
        <th>操作</th>
      </tr>
    </thead>
    <tbody>
       <form>
         <volist name=\"list\" id=\"vo\" empty=\"$empty\">
           <tr>
             <td><input name=\"delete[]\" type=\"checkbox\" value=\"{$vo.id}\" /></td>
             <td>{$vo.id}</td>
             <td>{$vo.name}</td>
             <td>{$vo.email}</td>
             <td>{$vo.subject}</td>
             <td>{$vo.datetime|date=\"Y-m-d H:i\", ###}</td>
           <td>
            <a class=\"delete\" href=\"javascript:;\" data-id=\"{$vo.id}\">删除</a>
           </td>
           </tr>
         </volist>
       </form>
    </tbody>
  </table>
</div>

JS脚本处理(使用ajax技术)
首先判断有没有选中的值,如果没有则提示;如果有,则传递到服务器端处理

/* 批量删除 */
  // 全选
  $(\'.all\').click(function() {
    if($(this).is(\':checked\')) {
      $(\':checkbox\').attr(\'checked\', \'checked\');
    } else {
      $(\':checkbox\').removeAttr(\'checked\');
    }
  });

  // 删除操作
  $(\'#discard\').click(function() {
    if($(\':checked\').size() > 0) {
      layer.confirm(\'确定要删除吗?\', {
        btn: [\'确定\',\'取消\'], //按钮
        shade: false //不显示遮罩
      }, function(){
        $.post(\"{:U(\'Single/discard\')}\", {data: $(\'form\').serializeArray()}, function(res) {
          if(res.state == 1) {
            layer.msg(res.message, {icon: 1, time: 1000});
          } else {
            layer.msg(res.message, {icon: 2, time: 1000});
          }
          setTimeout(function() {
            location.reload();
          }, 1000);
        });
      }, function(){
        layer.msg(\'取消了删除!\', {time: 1000});
      });
    } else {
      layer.alert(\'没有选择!\');
    }
  });

PHP代码:
获取提交的数据,然后循环得到每一个id的值,接着进行删除操作。

public function discard() {
  $contact = M(\'contact\');
  $deleteArr = I(\'post.data\');
  for($i=0;$i<count($deleteArr);$i++) {
    $contact->delete($deleteArr[$i][\'value\']);
  }
  $this->ajaxReturn(array(\'message\'=>\'删除成功!\'));
}

以上就是ThinkPHP实现批量删除的关键性代码,希望对大家的学习有所帮助。

本文地址:https://www.stayed.cn/item/1124

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。