layui前端父页面向子页面传输数据/表格数据的问题(iframe,弹出层),关闭子页面更新表格,已解决

当在一个页面点击一个按钮后弹出一个iframe,如何让改页面的数据传到子页面iframe的文本框等。以下演示的是把layui表格中当前行数据传到子页面,常用情况:编辑

本内容相关的项目实现系统已发布点此查看,收银员账号密码:1001密码123,源码可以到主页下载

layui表格的cols
		cols:
                [[
                    {type: "checkbox", fixed: "left"},

                    {field: 'gid', width: 80, title: 'ID', sort: true,align:"center"},
                    {field: 'gno', width: 110, title: '商品编号',align:"center"},
                    {field: 'gname', width: 200, title: '商品名称', sort: true,align:"center"},

                    {field: 'price', title: '原价', minWidth: 80, sort: true,align:"center"},
                    {field: 'isBargainPrice', width: 110, title: '是否特价',align:"center"},
                    {field: 'bargainPrice', width: 110, title: '特价价格', sort: true,align:"center"},
                    {field: 'unit', title: '单位', minWidth: 80, sort: true,align:"center"},
                    {field: 'stock', width: 110, title: '库存余量', sort: true,align:"center"}
                    , {title: '操作',width:120, toolbar: '#currentTableBar', align: "center", fixed: "right"}

                ]],
我这里是通过点击layui的tool的编辑按钮(表格行的最后的按钮)弹出一个iframe,下面是点击按钮后传输数据的方法,同时打开子页面
 if (obj.event === 'edit'&&identify=="管理员") {

                var index = layer.open({
                    title: '编辑商品',
                    type: 2,
                    shade: 0.2,
                    maxmin: true,
                    shadeClose: true,
                    area: ['100%', '100%'],
                    content: '/editGoods',
                    success:function () {
                        //表单数据回显,把表格当前行显示到子页面的表单内,find后括号内的是子页面表单的id
                        var body = layer.getChildFrame('body',index); body.find("#gid").val(data.gid);
                        var body = layer.getChildFrame('body',index); body.find("#gno").val(data.gno);
                        var body = layer.getChildFrame('body',index); body.find("#gname").val(data.gname);
                        var body = layer.getChildFrame('body',index); body.find("#price").val(data.price);
                        var body = layer.getChildFrame('body',index); body.find("#bargainPrice").val(data.bargainPrice);
                        var body = layer.getChildFrame('body',index); body.find("#unit").val(data.unit);
                        var body = layer.getChildFrame('body',index); body.find("#stock").val(data.stock);
                    }
                });
                $(window).on("resize", function () {
                    layer.full(index);
                });
                return false;
            } 
子页面iframe的代码,表格数据都将映射到对应id的表单内,编辑完成后有一个保存按钮,点击保存按钮则关闭当前子页面。
<div class="layui-form layuimini-form">
    <div class="layui-form-item">
        <label class="layui-form-label required">当前商品id</label>
        <div class="layui-input-block">
            <input type="text" name="gid" readonly="readonly" id="gid" lay-verify="required"
                   value="" class="layui-input">
            <tip>不可编辑。</tip>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">商品编号</label>
        <div class="layui-input-block">
            <input type="text" readonly="readonly" lay-verify="number|required" placeholder="请输入卡号"name="gno" id="gno"
                   class="layui-input">
        </div>
    </div>


    <div class="layui-form-item">
        <label class="layui-form-label required">商品名称</label>
        <div class="layui-input-block">
            <input type="text" lay-verify="required" name="gname" id="gname" class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">原价</label>
        <div class="layui-input-block">
            <input type="number" lay-verify="required|number" name="price" id="price" class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">是否特价</label>
        <div class="layui-input-inline">
            <select name="isBargainPrice" id="isBargainPrice">

                <option value=""></option>
                <option value=""></option>
            </select>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">特价价格</label>
        <div class="layui-input-block">
            <input type="number" lay-verify="required|number" name="bargainPrice" id="bargainPrice" class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">单位</label>
        <div class="layui-input-inline">
        <select name="unit" id="unit" lay-search="">
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value="千克">千克</option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>
            <option value=""></option>

        </select>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label required">库存</label>
        <div class="layui-input-block">
            <input type="number" lay-verify="required|integer" name="stock" id="stock" class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
        </div>
    </div>
</div>
</div>
保存按钮退出iframe事件,当然数据也将传送到后端
//监听提交
        form.on('submit(saveBtn)', function (data) {

            var goods = JSON.stringify(data.field)
            $.ajax({
                type: "POST",
                url: "/updateGoods",
                data:goods,
                contentType: "application/json;charset=utf-8",
                //async:false,
                success: function (result) {
                    if (result == "更新失败") {
                        alert("网络不佳!请稍后重试")
                    }

                },
                error: function (data, status, e) {
                    alert("网络不佳!请稍后重试");
                }
            })


            var index = layer.alert("修改成功", {
                title: '提示'
            }, function () {

                // 关闭弹出层
                layer.close(index);

                var iframeIndex = parent.layer.getFrameIndex(window.name);
                //更新父页面的表格
                window.parent.location.reload();
                parent.layer.close(iframeIndex);

            });

            return false;
        });
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值