javascript实现全选反选操作并完成删除

  在管理系统中,我们常需要删除多个文件,然而一个一个删除对于大批量数据来说必然会给操作人员带来反感,所以有一个全选操作按钮是最好的选择,支持全选反选和多选删除,无疑给操作人员带来极大的方便,下面我来对前些天做的全选多选删除来做个总结,也希望帮助到需要这个操作的程序员们。

  下边的代码是javascript脚本,他的功能就是在勾选全选后,将所有name=id的checkbox的属性都设置为checked,这样就实现了全选(反选)的功能。脚本直接放到jsp页面即可:

<script type="text/javascript">
     function checkAll(argu){
      var obj = document.getElementsByName("id"); 
        for(var i= 0;i<obj.length;i++){
              obj[i].checked = argu.checked;
            }
     }
</script>

<td> <input name="id" type="checkbox" value="<%=news.getId() %>"><%=i %></td> <td> <input align="left" type="checkbox" name="checkBoxs" onclick="checkAll(this)" /> 全选(反选)
// 此处的checkbox即为触发全选反选操作的勾选框,

  因为javascript中是通过name获得页面值,故checkbox的name值为javascript中对应的id,这样才可以获取到对应的内容,而checkbox的value为删除操作需要获得的id值,这样才能对应的删除数据库中的记录。通过javascript可以将所有选中的checkbox的值也就是对应数据库中的id值获取到,接下来的工作就是要将这些id值构成sql语句,执行删除操作。


首先需要在servlet中将传入的所有id值接收,此过程需要把所有的id拼装成一个字符串,以便传入delete操作函数,此处使用的是简单的字符串链接操作(也可以使用append方法)


String id[]=request.getParameterValues("id");
        String IdAll="";   
        if   (id!=null){
            for(int i=0;i<id.length;i++)
            {
                IdAll=IdAll+id[i]+",";   
                }   
                  IdAll=IdAll.substring(0,IdAll.length()-1);              
                          
                 System.out.println("IDAll-----"+IdAll);
                 FilesDownload.deleteFiles(IdAll);
        }

下边是deleteFiles()方法:

public static boolean deleteNews(String idAll){
        JDBCBean jdbc=new JDBCBean();
        String sql="delete from News where id in("+idAll+")";
        System.out.println(sql);
        int result=jdbc.executeUpdate(sql);
        boolean flag=false;
        if(result==1){
            flag=true;
        }
        return flag;
        
    }

delete from table_name where id in(?,?,?,?,?……);可以实现多个记录删除,当选取一个时,也可以完成删除操作,这样全选多选删除操作就很方便的完成了。

                                
------希望大家多多指教,欢迎转载,请注明出处,谢谢