layer关闭单前层,刷新父层的解决方案

我们写动态网页程序时通常会遇到这种情况:

  在一个页面添加数据到数据库中,添加成功时,要返回当前层的父级页面查看刚刚添加的数据,但我们发现父层依然是刚刚那些数据,并没有显示我们添加到数据库中的数据,这时候我们手动刷新一下浏览器数据就会出来,这样我们就知道了在数据添加成功的时候我们要先刷新父层,然后关闭当前的层。

这里我使用了两种方法

  这是因为我用了两种提交表单的方式:

    一、通过form的action的方法使用不同的页面提交。

        当我们使用了不同的页面提交的话会出现一个bug,就是弹出层会不断重叠。

        这里我是用laravel框架写的写法(通过with带回一个判断条件并返回提交的页面,然后通过with存储在session中的数据判断)

          return back()->with('success','true'); //处理页面

          提交页面:

          @if(session('success'))
              <script>
                  window.location.href = '需要刷新的父层地址';
                  parent.location.reload();
              </script>
          @endif

    二、通过Ap接口在当前页面做Ajax提交,不跳转页面

                //获取当前层的索引
                var index = parent.layer.getFrameIndex(window.name);
                //刷新父层
                parent.$('.btn-refresh').click();
                //关闭当前层
                parent.layer.close(index);
原文地址:https://www.cnblogs.com/duansong/p/12184377.html