Thinkphp 全选、反选 批量删除
完整案例
前台
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head> <title>我的钱包</title> <link href= "__PUBLIC__/HomeStyle/css/layout_903ac4c.css" rel= "stylesheet" type= "text/css" /> <link href= "__PUBLIC__/HomeStyle/css/widgets_680817d.css" rel= "stylesheet" type= "text/css" /> <link href= "__PUBLIC__/HomeStyle/css/main.html_aio_7fcf01c.css" rel= "stylesheet" type= "text/css" /> <style type= "text/css" > /*.row-fluid{*/ /*border-top: 1px solid #DDD;*/ /*padding: 12px 0 6px;*/ /*background-color: #eff3f8;*/ /*border-bottom: 1px solid #DDD;*/ /*width: 100%;*/ /*}*/ .page { display: inline-block; margin: 20px 0; text-align: center; } .page a { background-color: #fafafa; border: 1px solid #e0e8eb; color: #2283c5; margin: 0 2.5px; padding: 6px 12px; position: relative; text-decoration: none; } .bullet .top button { height: 25px; color: #fff; background-color: #00b38a; padding: 0px 10px; display: inline-block; vertical-align: middle; line-height: 25px; margin-right: 5px; } </style> </head> <body> <!--首页 用户 公司 标题栏--> <include file= "Public/header" nav= "recharge" /> <!--end #header--> <input type= "hidden" id= "serverTime" value= "1494292351403" /> <!-- 页面主体START --> <div class = "container clearfix" id= "container" > <!--左侧菜单栏--> <div class = "user_bindSidebar" > <dl class = "user_sideBarmenu" > <dt class = "title" >帐号设置 </dt> <dd> <a href= "{:U('Home/Company/bind_account')}" >帐号绑定</a> </dd> <dd> <a href= "{:U('Home/Company/updatePwd')}" >修改密码</a> </dd> <dd> <a href= "{:U('Home/Company/index')}" >公司资料</a> </dd> <dt class = "title" >招聘管理</dt> <dd> <a href= "{:U('Home/Recruit/Recruitment_manage')}" >我的招聘</a> </dd> <dd> <a href= "{:U('Home/Wallet/apply_invoice')}" >申请发票</a> </dd> <dd> <a class = "hover" href= "{:U('Home/Wallet/recharge')}" >我的钱包</a> </dd> </dl> </div> <input type= "hidden" value= "1" id= "hasSidebar" /> <div class = "user_userinfo_content" > <dl class = "c_section" > <dt><h1>充值记录</h1></dt> <dd class = "recharge" > <!--用户基本信息栏--> <include file= "Public/company_header_user" nav= "" /> </dd> <dd class = "bullet_out" > <div class = "top-up" > <ul class = "reset" > <li class = "current" > <a href= "/Wallet/recharge" >充值记录</a> </li> <li> <a href= "/Wallet/consume" >消费记录</a> </li> </ul> <div class = "bullet" > <form action= "{:U('Home/Wallet/recharge')}" method= "get" > <div class = "top" > <span>充值单号</span> <input type= "text" maxlength= "15" name= "OrderNumber" value= "{$map.OrderNumber}" /> <span>支付类型</span> < select style="height: 25px; color: #999; font-size: 12px; background-color: #fafafa;--> border: 1px solid #d4d2d2; vertical-align: middle; line-height: 25px; " name=" mr_paytype " id=" paytypesel" > <option value= "0" >全部</option> <option value= "1" >微信</option> <option value= "2" >支付宝</option> </ select > <span>订单状态</span> < select style="height: 25px; color: #999; font-size: 12px; background-color: #fafafa;--> border: 1px solid #d4d2d2; vertical-align: middle; line-height: 25px; " name=" mr_ordertype " id=" ordertypesel"> <option value= "0" >全部</option> <option value= "1" >等待付款</option> <option value= "2" >已付款</option> </ select > <input type= "submit" id= "search_submit" style= "float: right;" value= "搜索" /> </div> </form> <table class = "conent" cellpadding= "0" cellspacing= "0" style= " border-color:#d4d2d2" > <thead> <tr class = "conent_F" > <!--<th><input type= "checkbox" style= " width:20px; height:20px;" /></th>--> <th>编号</th> <th>用户名</th> <th>充值单号</th> <th>支付类型</th> <!--<th>订单类型</th>--> <th>订单金额</th> <th>时间</th> <th>状态</th> <!--<th>操作</th>--> </tr> </thead> <tbody> < foreach name= "data" item= "value" > <tr class = "conent_W" > <!--<td><input name= "check_me[]" type= "checkbox" value= "{$value.Id}" style= " width:20px; height:20px;" /></td>--> <td>{$value.Id}</td> <td>{$value.username}</td> <td>{$value.OrderNumber}</td> <td><eq name= "value.Paytype" value= "1" >微信< else /><eq name= "value.Paytype" value= "2" >支付宝< else /> </eq></eq></td> <!--<td>{$value.Ordertype}</td>--> <td>{$value.Money}</td> <td>{$value.CreateTime|date= 'Y.m.d' ,###}</td> <td class = "Wait" ><eq name= "value.Status" value= "1" ><i class = "red" >等待付款</i>< else /><eq name= "value.Status" value= "2" >已付款< else /><i style= "color:#EAC100" >已取消</i></eq> </eq> </td> <!--<td> <a class = "Look" href= "" >查看</a><a class = "Fail" href= "javascript:;" onclick= "$.del('{:U('/Home/Wallet/del', array('Id'=>$value['Id']))}');" >删除</a></td>--> <!--<td><a class = "Fail" href= "javascript:;" onclick= "$.del({$value.Id})" >删除</a></td>--> </tr> </ foreach > </tbody> </table> <!--<div class = "bottom" ><input id= "checkbox_all" type= "checkbox" style= " width:20px; height:20px; vertical-align: middle; margin-top: -4px;" /><span>全选</span> <a href= "" onclick= "deleteCheckBox();" >删除所选项</a> </div>--> </div> </div> <!--分页--> <div class = "row-fluid" > <div class = "page" >{$page}</div> </div> <script src= "__PUBLIC__/HomeStyle/js/jquery.1.10.1.min.js" ></script> <link rel= "stylesheet" href= "__PUBLIC__/Assets/css/lagou.global.css" > <script src= "__PUBLIC__/Assets/lagou/lagou.element.js" ></script> <script src= "__PUBLIC__/Assets/lagou/lagou.global.js" ></script> <script type= "text/javascript" ><br><br> //批量删除选中行 //在给每一个 type=checkbox 加相同的名字 check_me[] // function deleteCheckBox() { // //提示是否删除 // if(confirm("确定要删除吗?")){ // //将所有复选框的默认值放入数组中 // var check=document.getElementsByName('check_me[]'); // var checkArray=new Array(); // //将所有选中的复选框的默认值写入到数组中 // for(var i=0;i<check.length;i++){ // if(check[i].checked){ // checkArray.push(check[i].value); // } // } // //异步传值到后台 // $.ajax({ // url:"/Home/Wallet/batchDel" , // type:"get", // dataType:'json', // data:{"checkArray":checkArray}, // success:function (data) { // // //成功执行的方法 // if(data.msg=="删除成功!"){ // location.reload(); // }else{ // alert(data.msg); // } // } // }); // // } // } jQuery(function($){ // //上面 全选和全不选的切换 // var check2=true; // $(' table th input:checkbox').on('click',function () { // $(".bullet :checkbox").prop("checked", check2); // check2=!check2; // }); // //下面 全选和全不选的切换 // var check=true; // $("#checkbox_all").click(function () { // $(".bullet :checkbox").prop("checked", check); // check=!check; // });<br><br> $.extend({ action:function(url,obj) { var obj=$(obj).parents( 'form' ); $.ajax({ url:url, type: 'get' , data:obj.serialize(), success:function(res) { // alert(response.msg); $.lagou.alert(response.msg,response.code,2); $.lagou.formHide(); location.reload(); } }); }, // del:function (Id) { // if(confirm("确定要删除吗?")){ // jQuery.ajax({ // url:"/Home/Wallet/del", // type:"get", // data:{"Id":Id}, // success:function (msg) { // alert(msg.msg); // location.reload(); // } // }) // } // } }) }) </script> </dd> </dl> </div> </div> <include file= "Public/footer" nav= 'index' /> </body> </html><br><br><br> // 这就是全选按钮 方法二<br>//$('table th input:checkbox').on('click' , function(){<br>// var that = this;<br>// $(this).closest('table').find('tr > td:first-child input:checkbox')<br>// .each(function(){<br>// this.checked = that.checked;<br> // $(this).closest('tr').toggleClass('selected');<br>// }); <br>//}); |
后台
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 | <?php /** 钱包:充值和消费 * Created by PhpStorm. * User: Administrator * Date: 2017/6/8 * Time: 9:26 */ namespace Home\Controller; class WalletController extends CompanyBaseController { //定义数据表变量 protected $recharge= null ; protected $consume= null ; public function __construct() { parent::__construct(); $ this ->recharge=M( 'Recharge' ); $ this ->consume=M( 'Consume' ); } //钱包查询 public function recharge() { if (!session( '?user.id' )) { $ this ->redirect( 'User/login' ); } else { $name = $_SESSION[ 'user' ][ 'username' ]; $user = M( "Users" ); $usermodel = $user-> where ( "username=" . $name)->find(); $ this ->assign( "user" , $usermodel); } //获取页面所有查询条件 // $map=I(); // $a=array_filter($map); $a=I(); //订单搜索 //var_dump($a); if (!empty($a[ 'OrderNumber' ])) { $ where [ 'OrderNumber' ]=array( 'LIKE' , '%' .$a[ 'OrderNumber' ]. '%' ); } //支付类型 if ($a[ 'mr_paytype' ] != 0) { $ where [ 'Paytype' ]=array( 'EQ' ,$a[ 'mr_paytype' ]); // $where = $where . " and paytype =" . $a['mr_paytype']; } //订单状态 if ($a[ 'mr_ordertype' ] != 0) { $ where [ 'Ordertype' ]=array( 'EQ' ,$a[ 'mr_ordertype' ]); // $where = $where . " and status =" . $a['mr_ordertype']; } //获取用户id $uid = session( "user.id" ); $ where [ 'UserId' ]=$uid; // $where['Delete']=1; //分页部分 //获取总行数 $total =$ this ->recharge-> where ($ where )->count(); //每10个一页 $Page= new \Think\Page($total,5); $Page->setConfig( 'first' , '首页' ); $Page->setConfig( 'prev' , '上一页' ); $Page->setConfig( 'next' , '下一页' ); $Page->setConfig( 'last' , '尾页' ); $showPage=$Page->show(); //查询 去掉了订单类型 r.Ordertype $data=$ this ->recharge-> where ($ where )->page(I( 'get.p' ,1),5)->order( 'CreateTime desc' )-> join ( 'as r left join lg_users as u on r.UserId=u.id' )->field( 'r.Id,u.username,r.OrderNumber,r.Paytype,r.Money,r.CreateTime,r.Status,r.Usertype' )-> select (); //返回上一次搜索条件 $ this ->assign( 'map' ,$a); //返回分页栏 $ this ->assign( 'page' ,$showPage); //列表 $ this ->assign( 'data' ,$data); //展示页面 $ this ->display(); } public function del() { //调试方法 // $this->ajaxReturn($_GET["Id"]); // return; if (IS_AJAX){ $id=$_GET[ "Id" ]; // $id2=$_REQUEST["Id"]; //异步请求不能使用var_dump() //1正常;2已删除; //失败,直接用save是跟新整条,必须每个字段多包括。 // $data['Id']=$id; // $data['Delete']=2; // $rs=$this->recharge->save($data['Delete']); // 成功,更新某个字段。 // $delete='2'; // $rs=$this->recharge->where('Id='.$id)->setField('Delete','$delete'); //成功 $data[ 'Delete' ]=2; $rs=$ this ->recharge-> where ( 'id=' .$id)->field( 'Delete' )->filter( 'strip_tags' )->save($data); //当使用field('email')的时候,只允许更新email字段的值(采用strip_tags方法过滤),name字段的值将不会被修改。 //filter(strip_tags) 调用strip_tags过滤方法 if ($rs=== false ){ $msg[ 'code' ]=0; $msg[ 'msg' ]= '删除失败!' ; } else { $msg[ 'code' ]=1; $msg[ 'msg' ]= '删除成功!' ; } $ this ->ajaxReturn($msg); } } //批量删除 public function batchDel() { //调试方法一 // $this->ajaxReturn($_GET["checkArray"]); // return; //调试方法二 // $data=I('get.'); // $this->ajaxReturn($data['checkArray']); // return; if (IS_AJAX){ $data=$_GET[ "checkArray" ]; if (!empty($data)){ //批量删除方法一 // foreach ($data as $v){ // //删除的条件 // $condition['Id']=$v; // $d['Delete']=2; // //删除数据:假删除 // $result=$this->recharge->where($condition)->field('Delete')->filter('strip_tags')->save($d); // } //批量删除方法二 //判断id是数组还是一个数值 if (is_array($data)){ $condition = 'id in(' .implode( ',' ,$data). ')' ; } else { $condition = 'id=' .$data; } $d[ 'Delete' ]=2; $result=$ this ->recharge-> where ($condition)->field( 'Delete' )->filter( 'strip_tags' )->save($d); //判断是否成功 if ($result=== false ){ $msg[ 'code' ]=0; $msg[ 'msg' ]= '删除失败!' ; } else { $msg[ 'code' ]=1; $msg[ 'msg' ]= '删除成功!' ; } } $ this ->ajaxReturn($msg); } } //消费记录 public function consume(){ if (!session( '?user.id' )) { $ this ->redirect( 'User/login' ); } else { $name = $_SESSION[ 'user' ][ 'username' ]; $user = M( "Users" ); $usermodel = $user-> where ( "username=" . $name)->find(); $ this ->assign( "user" , $usermodel); } //获取用户id $uid = session( "user.id" ); $ where [ 'userid' ]=$uid; $ where [ 'usertype' ]=2; //企业类型为2 //获取总行数 $total =$ this ->consume-> where ($ where )->count(); //分页 $Page= new \Think\Page($total,10); $Page->setConfig( 'first' , '首页' ); $Page->setConfig( 'prev' , '上一页' ); $Page->setConfig( 'next' , '下一页' ); $Page->setConfig( 'last' , '尾页' ); $showPage=$Page->show(); //查询 $data=$ this ->consume-> where ($ where )->page(I( 'get.p' ,1),10)->order( 'createtime desc' )-> join ( 'as r left join lg_users as u on r.userid=u.id' )->field( 'r.id,u.username,r.paynumber,r.money,r.createtime,r.usertype' )-> select (); //返回分页栏 $ this ->assign( 'page' ,$showPage); //列表 $ this ->assign( 'data' ,$data); //展示页面 $ this ->display(); } //消费记录 public function consume_details(){ //接收记录id $id= $_GET[ 'id' ]; //获取失败 // $username= $_GET['username']; // var_dump($username); //获取用户id $uid = session( "user.id" ); $username2=session( "user.username" ); $ where [ 'userid' ]=$uid; $ where [ 'id' ]=$id; $ where [ 'usertype' ]=2; //企业类型为2 //查询 $data=$ this ->consume-> where ($ where )-> select (); // $data=$this->consume->where($where)->join('as r left join lg_users as u on r.userid=u.id')->field('r.id,u.username,r.paynumber,r.money,r.createtime,r.usertype')->select(); $data[0][ 'username' ]=$username2; // var_dump($data[0]); //列表 $ this ->assign( 'value' ,$data[0]); //展示页面 $ this ->display(); } //支付页面 public function pay(){ if (!session( '?user.id' )) { $ this ->redirect( 'User/login' ); } else { $name = $_SESSION[ 'user' ][ 'username' ]; $user = M( "Users" ); $usermodel = $user-> where ( "username=" . $name)->find(); $ this ->assign( "user" , $usermodel); $ this ->display(); } } //申请发票 public function apply_invoice(){ if (!session( '?user.id' )) { $ this ->redirect( 'User/login' ); } else { $name = $_SESSION[ 'user' ][ 'username' ]; $user = M( "Users" ); $usermodel = $user-> where ( "username=" . $name)->find(); $ this ->assign( "user" , $usermodel); $ this ->display(); } } public function apply_invoice_do(){ if (IS_AJAX){ //调试方法一 // $this->ajaxReturn($_POST["content"]); // return; $data[ 'content' ]= $_POST[ "content" ]; $data[ 'user_id' ] = session( 'user.id' ); $data[ 'create_time' ]=time(); $Invoice = M( "Invoice" ); $result=$Invoice->data($data)->add(); //var_dump($result); 异步使用会中断 if ($result>0){ $msg= "ok" ; } else { $msg= "提交失败" ; } $ this ->ajaxReturn($msg); } } } ?> |
树立目标,保持活力,gogogo!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具