LayuiAdmin+TP5.1 数据表格添加数据详解
前端不行的 初出茅庐的后端在LayuiAdmin面前,根本是寸步难行,接下来给你讲解 : 数据表格添加按钮,添加数据:
1.数据表格上面写 添加按钮:
<button class="layui-btn layuiadmin-btn-useradmin" data-type="add">添加</button> //添加按钮
<table id="type" lay-filter="template-filter" ></table> //数据表格table
<script type="text/html" id="table-useradmin-webuser"> //数据表格中的 编辑删除按钮
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
</script>
2.
{block name="js"} 这个是继承的基础模板的js 进行重写 <script src="__layuiadmin__/layui/layui.js" charset="utf-8"></script> // 1. 引入静态文件 <script> layui.use('table', function(){ //大方法2. var $ = layui.$ //必写 3. var table = layui.table; //4. 个是数据表格 , table.render({ elem: '#type' ,url: "{:url('type/table')}"//数据接口 ,page: true //开启分页 ,limit:10 ,cols: [[ {field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'} ,{field: 'name', title: '类名',align: 'center', minWidth:80} ,{field: 'status', title: '状态', minWidth:80, align: 'center',templet: '#status-tpl'} ,{ title: '操作', minWidth: 150, align: 'center', fixed: 'right', toolbar: '#table-useradmin-webuser' } //绑定上面的编辑删除按钮 ]] }); // 事件 就是添加的事件 var active = { add: function () { //6.就是运行这个 add的方法 parent.layer.open({ type: 2 , title: '添加模板' //填入信息 , content: '{:url("add")}' //URL绑定 , maxmin: true // width: 504px; height: 424px; , area: ['504px', '424px'] //弹窗大小 , btn: ['确定', '取消'] , yes: function (index, layero) { var iframeWindow = parent.window['layui-layer-iframe' + index] , submitID = 'LAY-user-front-submit' , submit = layero.find('iframe').contents().find('#' + submitID); //监听提交 iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { // field 表单数据 var field = data.field; console.log(field) //表单数据打印
$.ajax({ //交互传值 url: '{:url("add")}', //传地址 type: 'post', //传的方式 data: field, success: res => { console.log(res) //收到后台返回的数据 是否添加成功 layer.msg(res.msg, { time: 1500 }) if (res.code == 0) { //数据刷新表单 table.reload('type'); } } }); parent.layer.close(index); //关闭弹层 }); submit.trigger('click'); } }); } }; $('.layui-btn.layuiadmin-btn-useradmin').on('click', function () { //5. 必写方法,绑定按钮的class,点击即运行这个方法, var type = $(this).data('type'); //获取按钮中的 data-type,也就是 "add" active[type] ? active[type].call(this) : ''; //获取到"add"之后 运行add方法 }); }); </script> {/block}
3.后台方法这么写:
public function add() { if (request()->isPost()) { //是否收到POST传参 $data = input('post.'); //接收所有的POST值 return json(['code' => 0, 'msg' => '成功']); //成功的话 返回成功数据 // return json(['code' => 1, 'msg' => '成功失败']); } else { return view(); //没收到传参就是添加弹窗 } }
分类:
TP5.1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?