JBOSS 点滴

丰丰的博客

如何用javascript控制checkbox,并进行批量删除

在做系统数据删除的时候,往往需要批量删除一些数据,如何做到呢?下面是一个小例子:
有以下表单:里面有几个checkbox,如何当点击第一个checkbox而同时选择所有的checkbox呢?可以用后面的script方法:
<form>
<table >
<tr>
     <td 
      <input type="checkbox" name="ifAll" id="ifAll" onClick="checkAll()">
     </td>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox1"></td>
</tr>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox1"></td>
</tr>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox2"></td>
</tr>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox3"></td>
</tr>
<table >
</form>
<script type="text/javascript">
function checkAll() {
  for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
   document.getElementsByName("selectFlag")[i].checked = document.getElementById("ifAll").checked;
  }
 }
</script>

用以下方法可以得到所有checkbox的值:
String[] userIds = request.getParameterValues("selectFlag");//返回一个数组

然后进行删除:
调用方法:UserManager.getInstance().deleteUser(userIds);
(具体的方法deleteUser(userIds)如下)
public void deleteUser(String[] userIds) {
  StringBuffer sbSql = new StringBuffer();
  for (int i =0; i < userIds.length; i++) {
   sbSql.append("'")
        .append(userIds[i])
        .append("',");
  }
  String sql = "delete from t_user where user_id in (" + sbSql.substring(0, sbSql.length() - 1) + ")";
  Connection conn = null;
  Statement stmt = null;
  try{
   conn = DB.getConn();//DB是一个链接数据库的javabeen
   stmt = conn.createStatement();
   stmt.executeUpdate(sql);
  }catch(SQLException e) {
   e.printStackTrace();
  }finally {
   DB.close(stmt);
   DB.close(conn);
  }
 }

posted on 2007-09-25 16:54 半导体 阅读(345) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: