layui给layer弹出层如何传值?

使用layui框架时,在点击表格中的按钮时,显示当前行的信息至layer弹出层.

clipboard.png

在点击查看或者编辑按钮时,会有一个弹出框
我这里用的是layui的外链页面的形式引入的页面

clipboard.png

这种方式,引入页面后,浏览器加载,直接将这个外链的弹窗解释称iframe了

clipboard.png

现在我需要将点击的那一行的每个信息展示在弹窗中,这就涉及到传参

之前有看layui的文档,layer.getChildFrame(selector, index) 这个方法有用过,但是效果没有出来,也查了相关资料,发现写的都差不多,不知道哪儿出了问题。望大神予以解答。
这是官方文档的处理方式:

layer.open({
  type: 2,
  content: 'test/iframe.html',
  success: function(layero, index){
    var body = layer.getChildFrame('body', index);
    var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
    console.log(body.html()) //得到iframe页的body内容
    body.find('input').val('Hi,我是从父页来的')
  }
});

下面是我写的:

layui.use(['layer', 'form'], function(){ //独立版的layer无需执行这一句
    var $ = layui.jquery, layer = layui.layer, form = layui.form; //独立版的layer无需执行这一句
        layer.open({
            type: 2
            ,title: ['查看信息'] //不显示标题栏
            ,closeBtn: 1
            ,area: ['400px', '500px']
            ,shade: 0.4
            ,id: 'LAY_layuipro7' //设定一个id,防止重复弹出
            ,btn: ['确定']
            ,btnAlign: 'c'
            ,moveType: 1 //拖拽模式,0或者1
            ,content:'../../../html/iframes/company/check-layer.html'
            ,success:function(layero, index){
            var body = layer.getChildFrame('body', index);
            var iframeWin = window[layero.find('iframe')[0]['name']]; 
            body.find('.personId').val(data.id)
            body.find('.personName').val(data.name)
            body.find('.sex').val(data.sex)
            body.find('.city').val(data.city)
            body.find('.sign').val(data.sign)
            body.find('.score').val(data.score)
        }
    })
})
阅读 30.1k
1 个回答

通过url传参把,把需要的参数拼到iframe链接后面,弹窗里的页面再取下就完事了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题