疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
在做系统数据删除的时候,往往需要批量删除一些数据,如何做到呢?下面是一个小例子:
有以下表单:里面有几个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);
  }
 }
ok!

评论

# re: 如何用javascript控制checkbox,并进行批量删除[未登录]  回复  更多评论   

2007-09-24 20:06 by vulcan
另外一种方法:
//select all
function checkAll(form)
{
for (var i=0; i<form.elements.length; i++)
{
var e = form.elements[i];
if (e.name != 'ifAll')
e.checked = form.chkall.checked;
}
}
//效果是一样的,似乎更简洁些

# re: 如何用javascript控制checkbox,并进行批量删除  回复  更多评论   

2007-09-24 22:24 by hee
还有更简单的

<input type="checkbox" name="ifAll" id="ifAll" onClick="checkAll(this)">

function checkAll($obj) {
var elms = document.getElementsByName("selectFlag");
for (var i = 0; i < elms.length; i++) {
elms[i].checked = $obj.checked;
}
}

# re: 如何用javascript控制checkbox,并进行批量删除  回复  更多评论   

2007-10-13 03:48 by 小飞飞
这些是不是所有的浏览器读支持?测试过了吗?

# re: 如何用javascript控制checkbox,并进行批量删除  回复  更多评论   

2009-02-22 18:01 by
表单是用Submit按钮提交吗 ???? 我没有接受到值 null

# re: 如何用javascript控制checkbox,并进行批量删除  回复  更多评论   

2010-07-10 14:44 by it
function checkAllBox (obj){
var sampleid = document.getElementsByName("sampleid");
// 如果点击了全选,所有的checkbox都被选中
if (obj.checked == true) {
for (var i=0; i<sampleid.length; i++) {
sampleid[i].checked = true;
}
} else {
for (var i=0; i<sampleid.length; i++) {
sampleid[i].checked = false;
}
}
}

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


网站导航: