效果:
JSP页面代码
<!--全选框-->
<th width="10%">
<input type="checkbox" onclick="ckAll();" id="p1"/>
</th>
<!--子选框-->
<!--设置value值是为批量删除传递id-->
<td><input type="checkbox" name="child" value="${uu.id }" onclick="clickChild();"/></td>
<!--批量删除按钮-->
<input type="button" value="批量删除" onclick="deleteUsers();"/>
<script type="text/javascript">
//全选
function ckAll(){
var status=document.getElementById("p1").checked; //全选按钮的状态
var childs=document.getElementsByName("child"); //子节点的数组
for(var i=0;i<childs.length;i++){
childs[i].checked=status;
}
}
//点击孩子
function clickChild(){
var childs=document.getElementsByName("child"); //子节点的数组
var count=childs.length; //所有的孩子的个数
var CheckedCount=0; //选中的孩子个数
for(var i=0;i<childs.length;i++){
if(childs[i].checked==true){
CheckedCount++;
}
}
//若子选按钮全选中,则全选按钮也选中
if(count==CheckedCount){
document.getElementById("p1").checked=true;
}else{
document.getElementById("p1").checked=false;
}
}
//批量删除
function deleteUsers(){
var ids=new Array(); //数组,存储选中的id 1,3,5
//获取选中的复选框的ID
var childs=document.getElementsByName("child"); //子节点的数组
for(var i=0;i<childs.length;i++){
if(childs[i].checked==true){
var id=childs[i].value; // value被绑定了ID
ids.push(id);
}
}
if(ids.length>0){
if(confirm("确定要删除选中的用户吗")){
//确定要删除
location.href="UserServlet?action=deleteusers&ids="+ids;
}
}else{
alert("请先选中要删除的用户数据!");
}
}
</script>
Servlet代码
if("deleteusers".equals(action)) {
//批量删除
//获取要删除的哦ID数组
String ids = request.getParameter("ids");
System.out.println("要删除的编号是:"+ids); // 1,3,4
int count = us.deleteUsers(ids);
if(count>0){
response.getWriter().print("<script>alert('删除成功');location.href='UserServlet?action=queryAll';</script>");
}else{
response.getWriter().print("<script>alert('删除失败');location.href='UserServlet?action=queryAll';</script>");
}
}
Dao层操作数据库代码
//批量删除
@Override
public int deleteUsers(String ids) {
String sql="delete from user where id in("+ids+")";
return this.doexecuteUpdate(sql, null);
}