JavaWeb:全选和反选,批量删除

效果:

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);
	}