layer中父子层的信息交互

父层:

//编辑页面
                    layer.open({
                        type: 2, //type为2,才会显示网页
                        title: '编辑店铺信息',
                        skin: 'layui-layer-rim', //加上边框
                        area: ['500px', '300px'], //宽高
                        content: '/edit_shop/?shop_id=' + data.shop_id + '&shop_name=' + data.shop_name + '&shop_url=' + data.shop_url, //子页面地址,会通过urls.py
                        shadeClose: true, //点击遮罩关闭层
                        btn: ['修改', '取消'],
                        yes: function (index, layero) {
                            //调用edit_shop页面的函数
                            var iframeWin = $("div.layui-layer-content > iframe")[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
                            iframeWin.form_submit(); //调用子页面的form_submit函数
                            layer.close(index);
                        },
                        no: function (index, layero) {
                            layer.close(index);
                        },
                        end: function (index) {
                            //这个要写在end中,如果卸载yes中,从这一次表不会更新,为什么?
                            table.reload('idTest')
                        }
                    });   
后端: Django 的views.py

def edit_shop(request):
    shop_id = request.GET.get('shop_id', None)
    shop_name = request.GET.get('shop_name', None)
    shop_url = request.GET.get('shop_url', None)
    # models.py中的类型不能覆盖构造函数
    # shop = Shop(shopId, shopName, shopUrl)

    # 如何利用传过来的参数呢,重新查岂不是不如只传id??????
    shop = Shop.objects.get(shopId=shop_id)

    logging.info('编辑店铺 shop_id=' + shop_id + ' shop_name=' + shop_name.encode('utf-8') + ' shop_url=' + shop_url)
    return render(request, 'edit_shop.html', {'shop': shop})

子层:edit_shop.html

<script>
        function form_submit () {
            $('#edit_shop_form').submit();
        }
</script>

<form id="edit_shop_form" class="layui-form" method="post" action="/update_shop/">
    {% csrf_token %}
    <div class="layui-form-item">
        <label class="layui-form-label">店铺名称</label>
        <div class="layui-input-block">
            <input type="text" name="shop_name" lay-verify="title" autocomplete="off" placeholder="请输入店铺名称"
                   class="layui-input" value={{ shop.shopName }}>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">店铺url</label>
        <div class="layui-input-block">
            <input type="text" name="shop_url" lay-verify="required" placeholder="请输入店铺url" autocomplete="off"
                   class="layui-input" value={{ shop.shopUrl }}>
        </div>
    </div>

    <input type="text" name="shop_id" hidden="hidden" value={{ shop.shopId }}>
    
</form>

查找的资料:

layer与iframe 间值的相互传递http://www.cnblogs.com/xujian2016/p/7251710.html

layer通过父页面调用子页面的方法及属性:http://blog.csdn.net/qq_28550739/article/details/53389588

iframe父子兄弟之间调用传值(contentWindow && parent):http://www.cnblogs.com/duankaige/archive/2012/09/20/2695012.html


layer父子页面交互:http://blog.csdn.net/dragonpeng2008/article/details/52607005

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值