java中如何选中checkbox进行单个和全部删除

2024-11-17 11:53:05
推荐回答(4个)
回答(1):

批量删除就是根据多个id进行删呗,只要把id传过去就行了。

你每一个checkbox都要有一个id和name,而且name要相同。比如name="ids"

那么有2中方式进行批量删除:
常规方式是:
var cbox=document.getElementsByName("ids"),拿到所有的checkbox,然后遍历它,如果选中了,

就拼一个类似于: var ids="1,2,3,4";这样的字符串
遍历:cbox
ids=i选中的id+","
去掉最后一个“,”
利用Ajax,将ids发到后台,后台利用split()分离出一个一个id,剩下的就是调用service或dao的delete方法了。

方式2:
将checkbox放在一个

表单中,
删除的时候,就手动提交这个表单,不管是框架也好还是原生的servlet也好,都能直接获取到选中的值,而且都是一个数组,剩下的都一样了

回答(2):

jsp页面:


function checkAll($obj) {
var elms = document.getElementsByName("selectFlag");
for (var i = 0; i < elms.length; i++) {
elms[i].checked = $obj.checked;
}
}
后台实现:
用以下方法可以得到所有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);
}
}

回答(3):

用javascript获取选中记录的序号用逗号加起来传到后台操作,点击删除按钮出发下面js代码function delete()
{
var str="";
var sel=document.getElementsByName("test");//获取checkbox的值
for( var i=0;i if(sel[i].checked==true)
str+=sel[i].value+",";
if(str==""){
alert("请至少选择一条记录");
return false;
}
if(window.confirm("确定删除吗?")){
window.location="";//后台删除处理
}
}----------------------------------------------------------

回答(4):