ajax实现批量删除

本文详细介绍了一种利用Ajax技术批量删除数据的方法。通过在HTML中设置type为checkbox的input多选框,结合jQuery和Ajax,实现了用户界面的批量选择与后台数据的批量删除操作。文章还展示了如何在控制器中接收并处理Ajax发送的请求,完成数据的批量删除。

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

这几天一直在学习ajax,实现了用ajax来批量删除数据。

HTML

<thead>
    <tr>
        <th class="table-check">
            <input id="allchk" onclick="allcheck();" type="checkbox" />
        </th>
        <th class="table-id">ID</th>
        <th class="table-title">photo</th>
    </tr>
</thead>
<tbody id="Cinfor_tbody">
    <c:forEach var="project" items="${list }">
        <tr id="tr_${project.id }">
            <td class="table-check">
                <input name="ids" value="${project.id }" type="checkbox" />
            </td>
            <td class="table-id">${project.id }</td>
            <td class="table-proficiency">${project.category.categoryName }</td>
        </tr>
    </c:forEach>
</tbody>

type属性为checkbox的input多选框的name为ids,value为数据的id,我们要根据这个id来进行删除。

ajax

//全选,这个方法实现点击id为allchk的input时,下列的所有多选框变为checked的状态
function allcheck(){
    if ($("#allchk").is(':checked')) {
         $("input[name='ids']").prop("checked",true);
    }else if($("#allchk").is(':checked')==false){
        $("input[name='ids']").prop("checked",false);
    }
}
//批量删除
$(function(){
    $("#deleteSkills").click(function(){
        //判断是否至少选择一项
        var checkedNum = $("input[name='ids']:checked").length;
        if(checkedNum==0){
            alert("请至少选择一项");
            return;
        }
        if(confirm("确定要删除所选项目?")){
            //这个数组存储要删除的数据的id
            var checkedList = new Array();
            //每一个被选中的name为ids的input标签
            $("input[name='ids']:checked").each(function(){
                checkedList.push($(this).val());//将id存入数组
            });
            $.ajax({
                type:"post",
                dataType:"json",
                url:"deleteProjects.action",//不同页面只用更改action即可
                async:true,
                //数组的toString里的id是用","分隔开的,例如数组{"1","2","3"},同String后为"1,2,3"
                data:{"deleteList":checkedList.toString()},
                success:function(data){
                    if(data==1){
                        for(var i=0;i<checkedList.length;i++){
                            $("#tr_"+checkedList[i]).remove();//ajax动态移除
                        }
                        alert("删除成功");
                    }else{
                        alert("删除失败");
                    }
                },
                error:function(){
                    alert("error");
                }
             })
         }
     })
              			
})

Controller

/*
 * 通过id批量删除project
 */
@RequestMapping("/deleteProjects.action")
@ResponseBody
public String deleteProjects(String deleteList){
    //因为传递的deleteList为带","的字符串,所以需要消掉分隔符转为数组
	String[] ids = deleteList.split(",");
	for(String id:ids){
		projectService.deleteProjectById(Integer.parseInt(id));
	}
	return "1";
}

这里需要特别注意的就是我们要把ajax传过来的String数据分割为数组。

要通过点击批量删除按钮来使用AJAX实现批量删除数据库内的信息,你需要编写以下代码: HTML代码: ``` <button id="delete-selected">批量删除</button> <table id="data-table"> <thead> <tr> <th><input type="checkbox" id="select-all"></th> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td><input type="checkbox"></td> <td>1</td> <td>张三</td> <td>20</td> <td><button class="delete-btn" data-id="1">删除</button></td> </tr> <tr> <td><input type="checkbox"></td> <td>2</td> <td>李四</td> <td>25</td> <td><button class="delete-btn" data-id="2">删除</button></td> </tr> <tr> <td><input type="checkbox"></td> <td>3</td> <td>王五</td> <td>30</td> <td><button class="delete-btn" data-id="3">删除</button></td> </tr> </tbody> </table> ``` 在上面的代码中,我们创建了一个表格,包含了一些数据和一个批量删除按钮。每个数据行都有一个复选框和一个删除按钮。每个删除按钮都有一个 `data-id` 属性,用于存储要删除的数据的ID。 JavaScript代码: ``` $(document).ready(function() { // 全选/取消全选 $('#select-all').click(function() { $('input[type="checkbox"]').prop('checked', $(this).prop('checked')); }); // 单个删除 $('.delete-btn').click(function() { var id = $(this).data('id'); $.ajax({ url: 'your-url-to-delete-data?id=' + id, type: 'DELETE', success: function(result) { // 删除成功后执行的代码 alert('删除成功'); window.location.reload(); }, error: function(error) { // 删除失败后执行的代码 alert('删除失败'); } }); }); // 批量删除 $('#delete-selected').click(function() { var ids = []; $('input[type="checkbox"]:checked').each(function() { ids.push($(this).closest('tr').find('.delete-btn').data('id')); }); if (ids.length == 0) { alert('请至少选择一项'); return; } $.ajax({ url: 'your-url-to-delete-data?ids=' + ids.join(','), type: 'DELETE', success: function(result) { // 删除成功后执行的代码 alert('删除成功'); window.location.reload(); }, error: function(error) { // 删除失败后执行的代码 alert('删除失败'); } }); }); }); ``` 在上面的代码中,我们使用jQuery来添加点击事件处理程序。单击删除按钮时,我们从 `data-id` 属性中获取要删除的数据的ID,并使用AJAX请求将其从数据库中删除。在批量删除时,我们首先获取选中行中的所有ID,然后将它们作为一个字符串发送到服务器端进行批量删除。在成功或失败的情况下,我们使用 `alert` 弹出相应的消息,并重新加载页面以显示更新后的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值