使用layui弹框实现添加时,当添加成功之后如何进行关闭当前窗口刷新父页面的数据

简介: 使用layui弹框实现添加时,当添加成功之后如何进行关闭当前窗口刷新父页面的数据

一看标题可能大家都比较模糊,我就去特意做了一个gif的演示图,结果发现太小了,就改成了现在的视频,视频地址:

使用layui实现对数据的增删改查

演示案例实现技术是:ssh框架+layui表格,即简单的对单表数据库做了个增删改查。

相信大家看过视频之后,已经知道大体的业务流程,我在这里在简单的说明一下。

1.默认进入首页default.jsp,进入该页面之前将所有数据查询出来,在控制器中放入对象集合,在页面上直接遍历数据即可。

控制器中的代码:

//查询全部年级
  public String getGradeAll(){
    gradeList = gradeService.getGradeAll();
    return "success";
  }

default.jsp中的主要代码:

<table class="layui-table admin-table">
  <thead>
    <tr>
      <th style="width: 30px;">
        <input type="checkbox" lay-filter="allselector" lay-skin="primary">
      </th>
      <th>编号</th>
      <th>名称</th>
      <th>操作</th>
    </tr>
  </thead>
  <tbody id="content">
    <c:forEach items="${gradeList }" var="grade">
    <tr>
      <td style="width: 30px;">
        <input type="checkbox" lay-filter="allselector" lay-skin="primary">
      </td>
      <td>${grade.gid }</td>
      <td>${grade.gname }</td>
      <td>
        <a href="javascript:void up(${grade.gid }) ;" id="update" class="layui-btn layui-btn-warm layui-btn-small">修改</a>
        <a href="delGradeById?gid=${grade.gid }" class="layui-btn layui-btn-danger layui-btn-small">删除</a>
      </td>
    </tr>
  </c:forEach>
  
</tbody>
</table>

点击添加的按钮:

利用layui自带的好看弹出层,弹出来一个添加的页面层,代码如下:

添加的按钮:

<blockquote class="layui-elem-quote">
  <a href="javascript:;" class="layui-btn layui-btn-small" id="add">
    <i class="layui-icon">&#xe608;</i> 添加信息
  </a>
</blockquote>

按钮事件:

/* 添加弹出页面 */
$("#add").click(function(){
  layui.use('layer', function(){
    var layer = layui.layer;
    /* 弹出一个页面 */
    layer.open({
      type: 2, 
      content: 'saveGrade.jsp' //弹出来一个添加年级的页面
    }); 
  });   
});

添加页面的代码:

<form class="layui-form" action="" id="forms">
  <div class="layui-form-item">
    <label class="layui-form-label">年级名称</label>
    <div class="layui-input-block">
      <input type="text" name="grade.gname" lay-verify="title" autocomplete="off" placeholder="请输入标题" class="layui-input">
    </div>
  </div>
  <div class="layui-form-item">
    <div class="layui-input-block">
      <button id="save" class="layui-btn" lay-submit="" lay-filter="demo1">添加</button>
      <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
  </div>
</form>

点击添加时,利用ajax异步刷新,可以避免添加的弹出层关不掉,或者查询全部的数据没有及时更新,下面是添加时主要的代码:

<!-- 引入jquery -->
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
  $("#save").click(function(){
          //执行添加的操作ajax
          $.ajax({
            cache:true,
            type:"post",
            url:"saveGrade",
            data:$("#forms").serialize(),
            async:false,
            success:function(){
              window.parent.location.href="getGradeAll";
            }
          })
        });
})
</script>

这个问题当时上网查找了好久没有解决掉,最后试着使用ajax结合网上的其他解决方法才得以解决。

后面的修改和添加的方法也是一样的。


相关文章
layUI数据表格可编辑表格单元格值修改之后获取修改前的值
layUI数据表格可编辑表格单元格值修改之后获取修改前的值
931 0
|
前端开发 网络安全
layui如何实现添加数据时关闭页面层,并实时刷新表格数据?
layui如何实现添加数据时关闭页面层,并实时刷新表格数据?
|
JavaScript Java 数据格式
Layui数据表格(table)前后台交互
Layui数据表格(table)前后台交互
1004 0
【Layui】子页面向父级页面传递参数
【Layui】子页面向父级页面传递参数
1673 0
【Layui】子页面向父级页面传递参数
|
IDE PHP 开发工具
JetBrains PhpStorm 2025.1 发布 - 高效智能的 PHP IDE
JetBrains PhpStorm 2025.1 (macOS, Linux, Windows) - 高效智能的 PHP IDE
1034 1
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
前端开发
layui-form
`layui-form`是一个前端表单组件,提供多种表单类型如单行、多行排列的输入框,下拉选择框(支持模糊搜索),单选框和复选框。表单元素可通过`required`和`lay-verify`属性进行必填和验证设置。编辑器如`layedit`可用于富文本输入,表单监听事件如提交和单选器可绑定回调函数进行处理。此外,能动态更新渲染表单,初始化表单数据并进行数据校验,包括自定义验证规则。
1131 1
|
JSON 前端开发 API
后端开发中的API设计与文档编写指南####
本文探讨了后端开发中API设计的重要性,并详细阐述了如何编写高效、可维护的API接口。通过实际案例分析,文章强调了清晰的API设计对于前后端分离项目的关键作用,以及良好的文档习惯如何促进团队协作和提升开发效率。 ####
|
KVM 虚拟化 数据安全/隐私保护
KVM虚拟机安装实战
本文讲述了如何创建并使用VNC连接KVM虚拟机的详细教程,包括安装图解和命令行参数说明。
785 8