0

0

Layui表格编辑后的数据怎么保存到数据库

煙雲

煙雲

发布时间:2026-03-16 16:18:33

|

522人浏览过

|

来源于php中文网

原创

需监听table.on("edit")事件获取变更,用table.getData()或table.cache提取数据,经校验转换后通过$.ajax以application/json格式提交,并在成功后调用table.reload()同步UI。

layui table 编辑后怎么触发保存逻辑

layui 的 table 本身不自动提交数据,编辑单元格(edit: "text"edit: "checkbox")只是改了前端渲染值,你得自己监听变更、收集数据、发请求。没写这步,点完就“消失”是必然的。

关键动作是监听 table.on("edit") 事件,它会在用户结束编辑(失焦或回车)时触发,但注意:它只告诉你“哪一行哪一列变了”,不包含整行数据,也不帮你防抖或校验。

  • 必须在事件回调里用 table.cachetable.getData() 拿当前表格完整数据(推荐后者,更可靠)
  • 别直接用 e.value 当最终值——用户可能输了个空格、逗号,后端拒收;建议加简单 trim 或类型转换
  • 如果表格启用了分页,table.getData() 默认只返回当前页数据;要全量提交得手动拼接所有页缓存,或者改成单页加载

$.ajax 提交前要注意哪些参数

后端接口一般要 JSON 格式,但很多人直接把 table.getData() 结果塞进 data 字段,结果后端收到的是字符串化的 JSON(即双层转义),或者干脆 400 错误。

正确做法是显式设置 contentType: "application/json",并用 JSON.stringify() 包一层:

$.ajax({
  url: "/api/save-table",
  method: "POST",
  contentType: "application/json",
  data: JSON.stringify({ rows: table.getData() }),
  success: function(res) { console.log("保存成功"); }
});
  • 别漏掉 contentType,否则 Express/Koa 等框架默认按 application/x-www-form-urlencoded 解析,拿不到 JSON body
  • 后端字段名(比如这里的 rows)必须和接口文档一致,Layui 不会自动映射成你后端想要的 key
  • 如果某列是 checkbox 编辑,e.value"true""false" 字符串,不是布尔值,后端解析容易出错,建议前端转成 true/false 再提交

为什么改了一行,后端却收到全部数据

因为多数人习惯性调用 table.getData() 获取全量,而不是只提取变更行。这在数据量大时浪费带宽、增加后端压力,也掩盖了“到底改了什么”的业务意图。

Seed-Music
Seed-Music

字节跳动推出的AI音乐生成与编辑工具

下载

更合理的做法是:在 table.on("edit") 里记下变更的 e.tr(DOM 行元素)、e.field 和新值,再用 table.cache 查出该行原始数据,构造最小更新对象(比如 { id: 123, status: "done" })。

  • table.cache 是个对象,key 是表格的 id(如 "demo"),value 是数组,每项对应一行原始数据(含 lay-id
  • e.tr.data("index") 可拿到当前行在缓存中的索引,再结合 table.cache["demo"][index] 就能取到原数据
  • 如果后端支持 PATCH /api/items/123,就别 POST 全量,直接走单条更新,失败影响面小,日志也清楚

编辑后刷新页面数据没更新?检查这几个地方

常见现象:点保存弹了成功提示,但表格内容还是旧的,甚至关掉重开还是老数据。问题往往不在保存逻辑,而在“保存成功后没同步 UI”。

  • 没调用 table.reload() —— 这是最常见原因;保存成功后必须 reload,否则 DOM 和缓存都还是旧的
  • reload 时传了错误的 where 参数,导致拉了旧缓存或分页错乱;最稳妥是加个时间戳参数强制刷新:where: { t: Date.now() }
  • 后端返回的响应体结构和 Layui 期望的不一致(比如没返回 countdata 字段),导致 reload 失败静默;打开浏览器 Network 面板看响应体是否符合 response 配置
  • 如果用了 done 回调做手动渲染,记得在回调里重新赋值 res.datatable.cache,否则下次 getData() 还是旧的
Layui 表格的“编辑-保存”本质是前端状态管理 + 显式网络请求,它不替你决定何时存、存什么、怎么存。最容易被忽略的是:编辑事件只通知变更,不维护状态;保存后不 reload,UI 就永远不同步;而 reload 又高度依赖后端响应结构是否匹配。这些环节断一个,整个流程就卡住。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

457

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

549

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

337

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

83

2025.09.10

ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

166

2023.06.14

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

170

2023.08.31

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

124

2023.11.15

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

260

2024.09.24

minimax入口地址汇总
minimax入口地址汇总

本专题整合了minimax相关入口合集,阅读专题下面的文章了解更多详细地址。

3

2026.03.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号