jQuery Ajax无刷新数据增删改查功能

  一套简单的无刷新数据增删改查功能,基于jQuery Ajax异步请求技术,后端使用PHP处理数据并返回结果给前端,实现页面无刷新,不跳转对数据增删改查操作。

  index.html

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="UTF-8">
		<title>AJAX 无刷新增删改查</title>
		<!-- 引入 jQuery -->
		<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
		<style>
			* {
				margin: 20px;
				font-family: Arial;
			}

			.item {
				padding: 10px;
				border: 1px solid #ccc;
				margin: 5px 0;
			}

			button {
				cursor: pointer;
				padding: 3px 8px;
			}
		</style>
	</head>
	<body>
		<h2>AJAX 无刷新增删改查</h2>

		<!-- 添加表单 -->
		<div>
			<input type="text" id="name" placeholder="输入内容">
			<button id="addBtn">添加</button>
		</div>

		<!-- 数据列表 -->
		<div id="list"></div>

		<script>
			// 页面加载时获取数据列表
			$(function() {
				getList();
			});


			// 获取数据列表
			function getList() {
				$.get("api.php?action=getList", function(res) {
					$("#list").html(res); // 从api.php获取数据渲染到页面
				});
			}


			// 添加数据
			$("#addBtn").click(function() {
				let name = $("#name").val();
				if (!name) return alert("请输入内容");

				$.post("api.php", {
					action: "add",
					name: name
				}, function() {
					$("#name").val(""); // 清空输入框
					getList(); // 重新加载列表
				});
			});


			// 删除数据
			$(document).on("click", ".delBtn", function() {
				let id = $(this).data("id");
				if (!confirm("确定删除?")) return;

				$.post("api.php", {
					action: "del",
					id: id
				}, function() {
					getList(); // 更新列表
				});
			});


			// 修改数据
			$(document).on("click", ".editBtn", function() {
				let id = $(this).data("id");
				let oldName = $(this).data("name");
				let newName = prompt("修改内容", oldName);

				if (!newName) return;

				$.post("api.php", {
					action: "edit",
					id: id,
					name: newName
				}, function() {
					getList(); // 更新列表
				});
			});
		</script>
	</body>
</html>

  api.php

<?php
// 数据存储文件
$file = "data.txt";


// 获取操作方法
$action = $_GET["action"] ?? $_POST["action"];


// 读取所有数据
function getDatas(){
    global $file;
    return is_file($file) ? json_decode(file_get_contents($file), true) : [];
}


// 保存数据
function saveDatas($datas){
    global $file;
    file_put_contents($file, json_encode($datas, JSON_UNESCAPED_UNICODE));
}


// 获取数据列表
if($action == "getList"){
    $list = getDatas();
    if(empty($list)){
        echo "暂无数据";
        exit;
    }

    foreach($list as $id => $name){
        echo "
        <div class='item'>
            ID:{$id} | 内容:{$name}
            <button class='editBtn' data-id='{$id}' data-name='{$name}'>修改</button>
            <button class='delBtn' data-id='{$id}'>删除</button>
        </div>";
    }
    exit;
}


// 添加数据
if($action == "add"){
    $name = $_POST["name"];
    $list = getDatas();
    $id = time(); // 用时间戳当唯一 ID
    $list[$id] = $name;
    saveDatas($list);
    exit("ok");
}


// 删除数据
if($action == "del"){
    $id = $_POST["id"];
    $list = getDatas();
    unset($list[$id]);
    saveDatas($list);
    exit("ok");
}


// 修改数据
if($action == "edit"){
    $id = $_POST["id"];
    $name = $_POST["name"];
    $list = getDatas();
    $list[$id] = $name;
    saveDatas($list);
    exit("ok");
}

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

织梦DedeCMS解决一个栏目多个分页问题
上一篇 2014-10-28
PHP利用正则表达式提取内容中图片的函数
下一篇 2015-01-07

评论列表(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 实现批量删除的基本思路,使用 jQuery 监听&ldquo;批量删除&rdquo;按钮的点击事件,收集用户选择的要删除的项目的标识(例如,ID)。   使用 Ajax 发送异步请求到后端,将要删除的项目标识传递给服务器。在后端,接收到请求后,根据接收到的项目标识进行删除操作,并返回相应的结果给前端。   以下是一个简单的示例代码:   index.html &lt;!DOCTYPE html&g......

    2015-06-15
    21330
  • 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