Jsp页面通过勾选复选框实现批量删除

本文介绍了一种从前端收集Checkbox选中项并通过Ajax发送到后端进行批量处理的方法。具体步骤包括设置Checkbox的name属性相同,通过JavaScript获取选中项并格式化,最后在后端接收参数并执行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、将前台jsp页面中的所有你要用到checkbox的name值设为相同
二、在后台获取参数时,使用数组获取:
三、进行数组必要的格式转换,再进行sql操作

Jsp 页面

<input type='checkbox' name='chk' id='chk' value="+empId+">
<input type="checkbox" name="allchk" id="allchk" onclick="allCheck(this);"/>全选
<input class="btnBlue mL10 ygDelRow" value="删除" onclick="deleteContactor();" type="button">
<input id="delstrs" value="" type="hidden">

全选按钮的函数

//全选按钮
function allCheck(check){
var checkbox=document.getElementsByName("chk");
if(check.checked){
for(var i=0;i<checkbox.length;i++){
checkbox[i].checked="checked";
}
}else{
for(var i=0;i<checkbox.length;i++){
checkbox[i].checked="";
}
}
}


删除员工的函数

//删除员工
function deleteContactor(){

var empId="";
var sel=document.getElementsByName("chk");//获取checkbox的值
for( var i=0;i<sel.length;i++)
if(sel[i].checked==true)
empId+=sel[i].value+"~";
if(empId === undefined || empId === ''){
alert("请至少选择一条记录!");
return ;
}
$("#delstrs").val(empId);
$.popup($(".zctjcg"));
$('.zctjcg').show();
$('.maskBlack').show();
}
//确认删除
function confirmDelete(){
// if(confirm("您确定删除选定的员工信息?")){
var empId= $("#delstrs").val();
var url = GETFRONTUSERSTRING+"doDelEmp.action";
var param = {
empId:empId
};
try{
new AjaxRequest(url,{
parameters:param,
onComplete:function(data){
$(".zctjcg").hide();
$(".maskBlack").hide();
doStaffQuery();
},
onFail:function(){
return false;
}
});
}catch(e){
alert(e.message);
$(".zctjcg").hide();
$(".maskBlack").hide();
return;
}
}

//后台获取参数

String empId = this.getAjaxParameter("empId");
String [] empIds = empId.split("~");


/**
* 获取Get方式的Ajax请求参数解码值
* 实际上就是调用request.getParameter方法获得参数,然后再进行编码转换
*/
public String getAjaxParameter(String paramName) {
if (paramName == null) {
return null;
}
String value = this.getRequest().getParameter(paramName);
String decodedValue = this.getDecodedValue(value);

return decodedValue;
}


//数据库修改值批量更新

ManagerFactory.getEnterpriseEmpManager().updateEmpStatus(empIds,sessionUser.getUserId());


//dao层方法具体实现

public int[] batchUpdateEmpStatus(final String[] empIds, final String userId) {
String sql = "update aes_enterprise_emp p set status = ? ,operator = ? , operatetime = ? where p.enterpriseempid=?";
return this.batchUpdate(sql.toString(), new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int index) throws SQLException {
String empid=empIds[index];
ps.setString(1, "0");
ps.setString(2, userId);
ps.setTimestamp(3,new Timestamp(new Date().getTime()));
ps.setString(4, empid);
}
@Override
public int getBatchSize() {
return empIds.length;
}
});

}


底层dao

protected int[] batchUpdate(String sql, BatchPreparedStatementSetter setter) {
logManager.info(this.getClass(), sql);

return getJdbcTemplate().batchUpdate(sql, setter);
}


//效果图
[img]http://dl2.iteye.com/upload/attachment/0127/4899/2f9a22e3-d4c5-30d9-8614-5dad28f50c91.png[/img]

[img]http://dl2.iteye.com/upload/attachment/0127/4901/09b15c23-c81f-326d-b5b4-dddb7490d4b8.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值