批量删除,前台参数传递及后台参数接收
后台采用数组接收
例子情景:模拟批量删除用户
思路:删除用户,每一个复选框的Value值都代表一个用户的ID,获取每一个选中的复选框的值,放入数组,然后直接
传递给后台,在不知道一共有多少个复选框的时候,使用jQuery来实现
var userIdList = new Array();//存放相应的用户Id
//给每一个选中的标签都绑定一个方法
$("input:checked").each(function(){
//将标签的值放入数组中
userIds.push($(this).val());//此处添加不能使用add add不是一个function
});
选择□ | 姓名 | 电话 |
□ | 何二 | 123 |
□ | 张三 | 123 |
□ | 李四 | 123 |
□ | 王五 | 123 |
□ | 赵六 | 123 |
后台接收:
@RequestMapping(value="/reduceUser",produces=MediaType.APPLICATION_JSON_VALUE+";charset=utf-8")
@ResponseBody
public Result deleteUser( @RequestParam("userIds[ ]")Integer [ ] userIds){
List<Integer> userIdList = Arrays.asList(userIds);
int num = this.userService.removeUser(userIdList);
if(num==1){
return new Result(200);
}else{
return new Result(400);
}
}
前台页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户的批量删除</title>
<style type="text/css">
td{
text-align: center;
}
</style>
<script type="text/javascript" src="jquery/jquery-3.2.1.js" ></script>
<script type="text/javascript" src="jquery/jquery-3.2.1.min.js" ></script>
<script type="text/javascript">
//用来全选和取消全部选择
function changeStatus(){
//获取第一行 (选择两字旁边 的那个复选框的状态)
var flag = $("#cheooseBox").is(":checked");
$("input").attr("checked",flag);
}
//$("input[name='input1']").click(function(){
$(function(){
//给提交的button绑定点击事件
$("button").click(function(){
// checkedNum = $("input[name='uname']:checked").length;
var checkedNum = $("input:checked").length;
if(confirm("确定删除所选项?")){
var userIds = new Array();
//给每一个选中的标签都绑定一个方法
//$("input[name='uname']:checked").each(function(){
$("input:checked").each(function(){
//将标签的值放入数组中
userIds.push($(this).val());//此处添加不能使用add add不是一个function
});
/* 也可以直接使用用jQuery发送异步请求
$.post("user/reduceUser",{userIds:userIds},function(data){
if(data.status==200){
//删除成功
if(confirm("恭喜你删除成功!点击确认刷新页面")){
//删除成功直接从新发送请求,加载页面
$(location).attr("href","user/showUser");
}
}
},"json");
*/
$.ajax({
type:"post",
url:"user/reduceUser",
data:{"userIds":userIdList},
dataType:"json",
//traditional:true,
success:function(data){
if(data.status==200){
if(confirm("恭喜你删除成功!点击确认刷新页面")){
// 删除成功后发送请求,刷新页面 $(location).attr("href","user/showUser");
//window.location.href="user/showUser";
}
}
}
});
}
});
});
</script>
</head>
<body>
<div class="user-info-form1" align="center">
<form action="" method="post">
<table border="1" cellspacing="0" cellpadding="0" width="300ox" height="450px">
<tr>
<th>选择
<input type="checkbox" id="cheooseBox" value="-1" onclick="changeStatus()" size="7" />
</th>
<th>姓名</th>
<th>电话</th>
</tr>
<tr>
<td><input name="uname1" value="1" type="checkbox"/></td>
<td>张三1</td>
<td>123</td>
</tr>
<tr>
<td><input name="uname2" value="2" type="checkbox"/></td>
<td>张三2</td>
<td>123</td>
</tr>
<tr>
<td><input name="uname3" value="3" type="checkbox"/></td>
<td>张三3</td>
<td>123<
</tr>
<tr>
<td><input name="uname4" value="4" type="checkbox"/></td>
<td>张三4</td>
<td>123</td>
</tr>
<tr>
<td><input name="uname5" value="5" type="checkbox"/></td>
<td>张三5</td>
<td>123</td>
</tr>
</table>
<button style="width:90px;height:50px">提交</button>
</form>
</div>
</body>
</html>