0
点赞
收藏
分享

微信扫一扫

LayuiAdmin+TP5.1 数据表格添加数据详解

三千筱夜 2022-04-17 阅读 110
php

前端不行的 初出茅庐的后端在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();          //没收到传参就是添加弹窗  
        }
        
    }

举报

相关推荐

0 条评论