jQuery Ajax无刷新批量删除数据功能

  在 jQuery 中使用 Ajax 实现批量删除的基本思路,使用 jQuery 监听“批量删除”按钮的点击事件,收集用户选择的要删除的项目的标识(例如,ID)。

  使用 Ajax 发送异步请求到后端,将要删除的项目标识传递给服务器。在后端,接收到请求后,根据接收到的项目标识进行删除操作,并返回相应的结果给前端。

  以下是一个简单的示例代码:

  index.html

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8">
		<title>Ajax批量删除</title>
		<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
		<style>
			.box {
				width: 500px;
				margin: 30px;
			}

			.item {
				padding: 8px;
				border: 1px #eee solid;
				margin: 4px 0;
			}

			button {
				padding: 5px 12px;
				cursor: pointer
			}
		</style>
	</head>
	<body>
		<div class="box">
			<h3>数据列表|批量删除</h3>
			<label><input type="checkbox" id="checkAll"> 全选 </label>
			<button id="batchDel">批量删除</button>
			<div id="dataList"></div>
		</div>

		<script>
			$(function() {
				// 初始化加载列表
				loadData();

				// 全选/取消全选
				$('#checkAll').on('change', function() {
					$('.ids').prop('checked', $(this).prop('checked'));
				})

				// 批量删除
				$('#batchDel').click(function() {
					// 获取所有选中id
					let idArr = [];
					$('.ids:checked').each(function() {
						idArr.push($(this).val());
					})
					if (idArr.length == 0) {
						alert('请勾选要删除的数据');
						return false;
					}
					if (!confirm('确定删除选中数据?')) return;

					// Ajax POST批量删除
					$.post('del_api.php', {
						action: 'batchdel',
						ids: idArr // 数组直接传给php
					}, function(res) {
						if (res.code == 1) {
							alert('删除成功');
							loadData(); // 重新加载列表
						} else {
							alert(res.msg)
						}
					}, 'json')
				})
			})

			// 加载列表
			function loadData() {
				$.get('del_api.php?action=getlist', function(html) {
					$('#dataList').html(html)
				})
			}
		</script>
	</body>
</html>

  del_api.php

<?php
// 数据存储文件
$file = 'data.txt';
$action = $_REQUEST['action'] ?? '';

// 读取数据
function getData(){
    global $file;
    // 如果文件不存在,返回默认测试数据
    if(!file_exists($file)){
        return [
            1 => '张三 - 员工信息',
            2 => '李四 - 财务档案',
            3 => '王五 - 人事资料',
            4 => '赵六 - 项目文档',
            5 => '孙七 - 合同文件',
            6 => '周八 - 报销单据',
            7 => '吴九 - 考勤记录',
            8 => '郑十 - 客户资料',
            9 => '冯十一 - 产品台账',
            10 => '陈十二 - 库存明细'
        ];
    }
    return json_decode(file_get_contents($file), true);
}

// 保存数据到文件
function saveData($arr){
    global $file;
    file_put_contents($file, json_encode($arr, JSON_UNESCAPED_UNICODE));
}


// 获取数据列表
if($action == 'getlist'){
    $list = getData();
    $html = '';
    foreach($list as $id => $name){
        $html .= '<div class="item">
            <input class="ids" type="checkbox" value="'.$id.'"> ID:'.$id.' - '.$name.'
        </div>';
    }
    echo $html;
    exit;
}


// 批量删除
if($action == 'batchdel'){
    $ids = $_POST['ids'] ?? []; // 接收前端传来的ID数组
    $data = getData();
    
    // 循环删除选中数据
    foreach($ids as $id){
        unset($data[$id]);
    }
    
    saveData($data); // 保存删除后的数据
    
    // 返回JSON给前端
    echo json_encode([
        'code' => 1,
        'msg'  => '批量删除成功'
    ], JSON_UNESCAPED_UNICODE);
    exit;
}

本站原创内容,转载请注明来源:https://www.liutonghui.com/119

Dedecms文章内容页和图片集内容页调用缩略图的方法
上一篇 2015-04-29
大鹿岛游记
下一篇 2015-07-04

评论列表(0条)

  • 暂无评论

发表评论

captcha

相关推荐

  • PHP动态滚屏无刷新加载数据

      滚屏加载,也称为滚动加载或懒加载,是一种网页设计技术,当用户滚动页面时,新内容会自动加载,无需点击&ldquo;下一页&rdquo;按钮。这种技术提高了用户体验,尤其是在处理大量数据时,如社交媒体、新闻网站和电子商务平台。   滚屏加载技术,就是使用Javascript监视滚动条的位置,每次当滚动条到达浏览器窗口底部时,触发一个Ajax请求后台PHP程序,返回相应的数据,并将返回的数据追加到页面底部,从而实现了动态加载,其实就是一个......

    2013-10-24
    22240
  • 基于jQuery+JSON的省市区三级无刷新联动

      省市区联动下拉效果在WEB应用中使用非常广泛,尤其在一些会员信息系统、电商网站最为常见,开发者一般使用AJAX实现无刷新下拉联动。本文将讲述利用jQuery插件,通过读取JSON数据,实现无刷新动态下拉省市二(三)级联动效果。   HTML   首先在head中载入jquery库和cityselect插件。 &lt;script type="text/javascript" src="js/jquery.js"&gt;&lt;/sc......

    2013-12-09
    17480
  • jQuery制作图片浮动放大,鼠标滚轮缩放功能

      点击图片居中放大显示,背景半透明遮罩,鼠标滚轮可缩放图片大小,再次点击图片恢复原始大小并关闭。 &lt;!DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;图片点击放大居中+滚轮缩放&lt;/title&gt; &lt;script src="https://code.jqu......

    2014-08-10
    17270
  • jQuery实现文章列表指定行后插入广告

      jQuery插入广告位功能:可指定固定位置,第几行后插入广告和随机某一行后插入广告,每次刷新位置不一样两种模式。 &lt;!DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;文章列表插入广告&lt;/title&gt; &lt;script src="https://code......

    2014-09-12
    12250
  • jQuery Ajax无刷新数据增删改查功能

      一套简单的无刷新数据增删改查功能,基于jQuery Ajax异步请求技术,后端使用PHP处理数据并返回结果给前端,实现页面无刷新,不跳转对数据增删改查操作。   index.html &lt;!DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;AJAX 无刷新增删改查&lt;/t......

    2014-11-16
    20100
  • Ajax实现无刷新表格实时编辑

      简单的jQuery Ajax表格实时编辑功能,点击单元格数据即可实时编辑更新数据,无需刷新跳转页面。   index.html &lt;!DOCTYPE html&gt; &lt;html lang="utf-8"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Ajax 表格实时编辑&lt;/title&gt; &lt;script src="ht......

    2016-02-20
    12260
  • Layui + jQuery无刷新增删改查功能

      使用Layui框架可以让后台管理功能开发更高效,UI风格更统一美观。简单介绍一下Layui+jQuery开发无刷新数据操作功能的原理,支持数据查询,增加,修改,删除(包括批量删除)。   index.html &lt;!DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Layui......

    2018-09-14
    19930
  • ThinkPHP数据软删除及数据恢复功能

      ThinkPHP的软删除不是真正删除数据库数据,而是通过标记字段(如delete_time)记录删除状态,查询时自动过滤delete_time字段已标记删除的数据,支持数据恢复和真实删除,相当于为项目加了一个回收站功能,以避免数据被误删。   软删除依赖模型操作,不支持原生查询,需要数据表有删除标记字段(默认delete_time,类型:datetime/timestamp,允许null),需要引入ThinkPHP内置的SoftDe......

    2022-01-27
    10700