日期:2014-05-17  浏览次数:20667 次

问个关于复选框的问题。。
原先做的后台管理只能进行单个删除。。。

只要是通过传递参数给action执行

Java code
<td><a href="Action?id=<%=user.getId()%>&action=delete"  onclick="return confirm('是否将该条记录删除?')">删除</a></td> 




现在想添加一个复选框checkbox实现批量删除

比如复选框checkbox名字叫pl

初步想法是把结果拼接成字符串通过a href传到后台执行操作

然后后台执行sql语句
SQL code
delect from user where id in (字符串)



但是具体实现代码不是很懂,求指导。。。。。

------解决方案--------------------
探讨
引用:

传个id数组到后台, 可以循环逐个删除 也可以用in 但是in效率不高。



如果不用submit提交,直接用a herf 传递到action的话要怎么实现,能有点参考代码最好

谢谢

------解决方案--------------------
前台:
<a href="javaScript:void(0);" onclick="submit()">批量删除</a>
function submit(){
表单名.action="Action";
表单名.submit();
}

后台:
String[] ids = request.getParameters("pl");
这样就可以获所有选中的checkbox的value
然后拼成 "id, id, id," 这样的字符串
------解决方案--------------------
checkbox的value属性是要删除的记录ID值,然后,在点击批量删除这个按扭,你肯定弹个对话框出来,在这里你循环获取已选中的checkbox的value并以,分隔,最后在把最后一个,给截掉,然后在传给action,这样就可以直接用来delete了,对吧!见代码:
JScript code

function del(action) {
    var chk = document.getElementsByName("ids");
    var i = 0, count = 0, value = "" ;
    for (i; i < chk.length; i++) {
        if (chk(i).checked) {
            count++;
            value += chk(i).value + ",";
        }
    }

    if (count == 0) {
        alert("请至少选择一条记录进行操作!");
        return false;
    }
    if (!confirm("删除后的数据将不可恢复!\n确定要删除所选中的记录吗?")) {
        return false;
    }
    value = value.substring(0,value.lastIndexOf(","))
    document.frm.action = action+ "&id=" + value;
    document.frm.method = 'post';
    document.frm.submit();
    return true; 
}