Thinkphp 全选、反选 批量删除
完整案例
前台
<!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">
//批量删除选中行
//在给每一个 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;
// }); $.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>
// 这就是全选按钮 方法二
//$('table th input:checkbox').on('click' , function(){
// var that = this;
// $(this).closest('table').find('tr > td:first-child input:checkbox')
// .each(function(){
// this.checked = that.checked;
// $(this).closest('tr').toggleClass('selected');
// });
//});
后台
<?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);
} } }
?>
Thinkphp 全选、反选 批量删除的更多相关文章
- 关于jquery全选反选 批量删除的一点心得
废话不多说直接上代码: 下面是jsp页面的html代码: <table id="contentTable" class=""> <thead& ...
- angularJS 全选反选批量删除
<th> <label for="flag"> <span ng-hide="master">全选</span> ...
- php--jquery操作全选、批量删除、加减行
- jQuery实现checkbox全选反选及删除等操作
1.list.html 说明:用checkbox数组Check[]存放每一行的ID值 <div id="con"> <table width="100% ...
- MVC3学习:利用mvc3+ajax实现全选和批量删除
本例数据库操作使用EF code first; 先利用mvc自带的模板,先生成一个list视图,然后再手动添加复选框和删除按钮 <table> <tr> @*在标题行添加一个全 ...
- AJAX实现弹窗显示详情,全选和批量删除
以Nation表为例,将Nation表显示在页面上,每一行数据前面加上复选框,后面加上查看详情,点击以弹窗形式显示每一行的数据,并且在表格最后一行加上全选复选框,点击选中全部数据,后面跟一个批量删除按 ...
- jquery操作全选、批量删除、加减行
--------------------------------------------------------------------------------------- html静态页面 --- ...
- jQuery实现全选/反选和批量删除
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncod ...
- Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮
效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...
- 【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选
页面点击按钮添加一行 删除一行 全选 反选 全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html> <head> & ...
随机推荐
- nginx 常见错误释义
错误信息 错误说明 "upstream prematurely(过早的) closed connection" 请求uri的时候出现的异常,是由于upstream还未返回应答给用户 ...
- 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板
[源码下载] 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板 作者:webabcd 介绍背水一战 Windows 10 之 控件( ...
- LOJ#3052. 「十二省联考 2019」春节十二响(启发式合并)
题面 传送门 题解 先考虑一条链的情况,对于\(1\)号点来说,肯定是左子树中最大值和右子树中最大值一组,左子树中次大值和右子树中次大值一组--以此类推 那么如果不是一条链呢?我们把所有的链合并起来就 ...
- 游戏AI玩伴,是“神队友”还是“猪队友”?
“一代英豪”暴雪迎来了自己的暴风雪. 2月13日,动视暴雪公布了2018年全年财报.财报显示,暴雪第四季度营业收入仅为28.4亿美元,低于华尔街分析师预期的30.4亿美元.在公布了财报业绩后,该公司又 ...
- postgresql-pgbench(转)
pgbench测试: pg9.6.2的pgbench报错: [thunisoft@localhost ~]$ pgbench -S -c 8 -t 60 pgbenchdb Segmentatio ...
- centos7 初始化脚本
#!/bin/bash # 时间: 2018-11-21 # 作者: HuYuan # 描述: CentOS 7 初始化脚本 # 加载配置文件 if [ -n "${1}" ];t ...
- 关于a标签的onclick与href的执行顺序
onclick的事件被先执行,其次是href中定义的(页面跳转或者javascript), 同时存在两个定义的时候(onclick与href都定义了),如果想阻止href的动作,在onclick必须加 ...
- POJ 2719
#include<iostream> #include<stdio.h> using namespace std; ]; int _pow(int m,int n); int ...
- SQL SERVICE中的锁
SQL SERVICE中的几个锁 SELECT * FROM dbo.TableName WITH (NOLOCK) --不加任何锁的读,脏读SELECT * FROM dbo.TableName W ...
- IdentityServer-Setup and Overview
设置和概述 有两种方式创建一个IdentityServer 项目: 从零开始 使用Visual Studio的ASP.NET Identity模板 如果是从零开始,我们提供一序列的帮助及内存存储,所以 ...