• LayUI之CRUD(增删改查)


    目录

    前言

     一、前端静态模板 

    二、用户管理后台代码

    查看表(MySQL数据库)

    表结构:

     实体类

     Dao方法(UserDao):

    查询

    增加

    删除

    修改

    测试后台dao方法(Junit)

     UserDaoTest:

    查询

    增加

    修改

    删除

    web

    三、用户管理前台代码

    UserManage.jsp页面

     userManage.js

     用户管理界面效果

    增加

     编辑和修改

    修改运行效果:

    删除效果:


    前言

    本篇我们将使用LayUI界面实现用户的增删改查

     一、前端静态模板 

    首先,我们进入LayUI官网找相对应的模板,点击查看代码

     新建一个 userManage.jsp ,把源代码直接copy到我们的项目界面中:

     

    然后再找个表单复制源代码:

     接着增加一个提交按钮:

    userManage.jsp 成效:

    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. <%@ include file="../../common/head.jsp" %>
    4. html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    5. <html>
    6. <head>
    7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    8. <title>Insert title heretitle>
    9. head>
    10. <body>
    11. <div class="layui-form-item">
    12. <div class="layui-inline">
    13. <label class="layui-form-label">用户名:label>
    14. <div class="layui-input-inline">
    15. <input type="tel" name="phone" lay-verify="required|phone" autocomplete="off" class="l ayui-input demo-phone" value="请输入要查找的用户名">
    16. div>
    17. <button type="submit" class="layui-btn" lay-submit="" lay-filter="demo1">查找button>
    18. div>
    19. div>
    20. <table class="layui-hide" id="test" lay-filter="test">table>
    21. <script type="text/html" id="toolbarDemo">
    22. <div class="layui-btn-container">
    23. <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据button>
    24. <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目button>
    25. <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选button>
    26. div>
    27. script>
    28. <script type="text/html" id="barDemo">
    29. <a class="layui-btn layui-btn-xs" lay-event="edit">编辑a>
    30. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除a>
    31. script>
    32. <script src="//unpkg.com/layui@2.7.5/dist/layui.js">script>
    33. <script>
    34. layui.use('table', function(){
    35. var table = layui.table;
    36. table.render({
    37. elem: '#test'
    38. ,url:'/static/json/table/demo1.json'
    39. ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
    40. ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
    41. title: '提示'
    42. ,layEvent: 'LAYTABLE_TIPS'
    43. ,icon: 'layui-icon-tips'
    44. }]
    45. ,title: '用户数据表'
    46. ,cols: [[
    47. {type: 'checkbox', fixed: 'left'}
    48. ,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true}
    49. ,{field:'username', title:'用户名', width:120, edit: 'text'}
    50. ,{field:'email', title:'邮箱', width:150, edit: 'text', templet: function(res){
    51. return ''+ res.email +''
    52. }}
    53. ,{field:'sex', title:'性别', width:80, edit: 'text', sort: true}
    54. ,{field:'city', title:'城市', width:100}
    55. ,{field:'sign', title:'签名'}
    56. ,{field:'experience', title:'积分', width:80, sort: true}
    57. ,{field:'ip', title:'IP', width:120}
    58. ,{field:'logins', title:'登入次数', width:100, sort: true}
    59. ,{field:'joinTime', title:'加入时间', width:120}
    60. ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
    61. ]]
    62. ,page: true
    63. });
    64. //头工具栏事件
    65. table.on('toolbar(test)', function(obj){
    66. var checkStatus = table.checkStatus(obj.config.id);
    67. switch(obj.event){
    68. case 'getCheckData':
    69. var data = checkStatus.data;
    70. layer.alert(JSON.stringify(data));
    71. break;
    72. case 'getCheckLength':
    73. var data = checkStatus.data;
    74. layer.msg('选中了:'+ data.length + ' 个');
    75. break;
    76. case 'isAll':
    77. layer.msg(checkStatus.isAll ? '全选': '未全选');
    78. break;
    79. //自定义头工具栏右侧图标 - 提示
    80. case 'LAYTABLE_TIPS':
    81. layer.alert('这是工具栏右侧自定义的一个图标按钮');
    82. break;
    83. };
    84. });
    85. //行工具事件
    86. table.on('tool(test)', function(obj){
    87. var data = obj.data;
    88. //console.log(obj)
    89. if(obj.event === 'del'){
    90. layer.confirm('真的删除行么', function(index){
    91. obj.del();
    92. layer.close(index);
    93. });
    94. } else if(obj.event === 'edit'){
    95. layer.prompt({
    96. formType: 2
    97. ,value: data.email
    98. }, function(value, index){
    99. obj.update({
    100. email: value
    101. });
    102. layer.close(index);
    103. });
    104. }
    105. });
    106. });
    107. /*
    108. layer.open({
    109. title: '在线调试'
    110. ,content: '配置各种参数,试试效果'
    111. });
    112. */
    113. script>
    114. body>
    115. html>

    运行效果:

    二、用户管理后台代码

    查看表(MySQL数据库)

    t_oa_user表:

    有用户信息,就不给大家看他们的了,我就展示我的。

    表结构:

     

    要查询出用户信息及对应的角色

    SQL语句:

    1. select *
    2. ,(case rid
    3. when 1 then '管理员'
    4. when 2 then '发起者'
    5. when 3 then '审批者'
    6. when 4 then '参与者'
    7. when 5 then '会议室管理员 '
    8. else '其他' end
    9. )roleName
    10. from
    11. t_oa_user

    查询结果:

     实体类

    User:

    1. package com.oyang.entity;
    2. public class User {
    3. private Long id;
    4. private String name;
    5. private String loginName;
    6. private String pwd;
    7. private Long rid;
    8. public Long getId() {
    9. return id;
    10. }
    11. public void setId(Long id) {
    12. this.id = id;
    13. }
    14. public String getName() {
    15. return name;
    16. }
    17. public void setName(String name) {
    18. this.name = name;
    19. }
    20. public String getLoginName() {
    21. return loginName;
    22. }
    23. public void setLoginName(String loginName) {
    24. this.loginName = loginName;
    25. }
    26. public String getPwd() {
    27. return pwd;
    28. }
    29. public void setPwd(String pwd) {
    30. this.pwd = pwd;
    31. }
    32. public Long getRid() {
    33. return rid;
    34. }
    35. public void setRid(Long rid) {
    36. this.rid = rid;
    37. }
    38. public User() {
    39. super();
    40. // TODO Auto-generated constructor stub
    41. }
    42. @Override
    43. public String toString() {
    44. return "User [id=" + id + ", name=" + name + ", loginName=" + loginName + ", pwd=" + pwd + ", rid=" + rid + "]";
    45. }
    46. }

     Dao方法(UserDao):

    查询

    1. //查询用户信息及对应的角色,角色是通过case when得来的
    2. public List> list(User user,PageBean pageBean) throws Exception{
    3. String sql="select * \r\n" +
    4. ",(case rid \r\n" +
    5. "when 1 then '管理员' \r\n" +
    6. "when 2 then '发起者' \r\n" +
    7. "when 3 then '审批者' \r\n" +
    8. "when 4 then '参与者' \r\n" +
    9. "when 5 then '会议室管理员 ' \r\n" +
    10. "else '其他' end \r\n" +
    11. ") roleName \r\n" +
    12. "from \r\n" +
    13. "t_oa_user where 1=1 ";
    14. String name = user.getName();
    15. if(StringUtils.isNotBlank(name)){
    16. sql += " and name like '%"+name+"'%";
    17. }
    18. // 当实体类的属性完全包含数据库查询出来的列段的时候使用
    19. // super.executeQuery(sql, clz, pageBean);
    20. // 返回List>,对应的是联表查询,单个实体类对象不完全包含查询的列段
    21. return super.executeQuery(sql, pageBean);
    22. }

    增加

    1. //增加
    2. public int add(User user) throws Exception {
    3. String sql="insert into t_oa_user(name,loginName,pwd) values(?,?,?)";
    4. return super.executeUpdate(sql, user,new String[] {"name","loginName","pwd"});
    5. }

    删除

    1. //删除
    2. public int del(User user) throws Exception {
    3. String sql="delete from t_oa_user where id=?";
    4. return super.executeUpdate(sql, user,new String[] {"i d"});
    5. }

    修改

    1. //修改
    2. public int edit(User user) throws Exception {
    3. String sql="update t_oa_user set name=?,loginName=?,pwd=? where id=?)";
    4. return super.executeUpdate(sql, user,new String[] {"name","loginName","pwd","id"});
    5. }

    测试后台dao方法(Junit)

     UserDaoTest:

    查询

    1. package com.oyang.dao;
    2. import static org.junit.Assert.*;
    3. import java.util.List;
    4. import java.util.Map;
    5. import org.junit.After;
    6. import org.junit.Before;
    7. import org.junit.Test;
    8. import com.oyang.entity.User;
    9. import com.oyang.util.PageBean;
    10. public class UserDaoTest {
    11. UserDao ud=new UserDao();
    12. @Before
    13. public void setUp() throws Exception {
    14. }
    15. @After
    16. public void tearDown() throws Exception {
    17. }
    18. @Test
    19. public void testList() {
    20. User user=new User();
    21. PageBean pageBean =new PageBean();
    22. try {
    23. List> list = ud.list(user, pageBean);
    24. for (Map map : list) {
    25. System.out.println(map);
    26. }
    27. } catch (Exception e) {
    28. // TODO Auto-generated catch block
    29. e.printStackTrace();
    30. }
    31. }
    32. }

    增加

    1. @Test
    2. public void testAdd() {
    3. User user=new User();
    4. user.setName("oy");
    5. user.setLoginName("oyx");
    6. user.setPwd("123");
    7. try {
    8. ud.add(user);
    9. } catch (Exception e) {
    10. // TODO Auto-generated catch block
    11. e.printStackTrace();
    12. }
    13. }

    修改

    1. @Test
    2. public void testEdit() {
    3. User user=new User();
    4. user.setName("欧阳");
    5. user.setLoginName("oyangx");
    6. user.setPwd("123");
    7. user.setId(14L);
    8. try {
    9. ud.edit(user);
    10. } catch (Exception e) {
    11. // TODO Auto-generated catch block
    12. e.printStackTrace();
    13. }
    14. }

    删除

    1. @Test
    2. public void testDel() {
    3. User user=new User();
    4. user.setId(14L);
    5. try {
    6. ud.del(user);
    7. } catch (Exception e) {
    8. // TODO Auto-generated catch block
    9. e.printStackTrace();
    10. }
    11. }

    web

    UserAction:

    1. package com.oyang.web;
    2. import java.io.IOException;
    3. import java.util.HashMap;
    4. import java.util.List;
    5. import java.util.Map;
    6. import javax.servlet.http.HttpServletRequest;
    7. import javax.servlet.http.HttpServletResponse;
    8. import com.oyang.dao.UserDao;
    9. import com.oyang.entity.User;
    10. import com.oyang.framework.ActionSupport;
    11. import com.oyang.framework.ModelDriver;
    12. import com.oyang.util.PageBean;
    13. import com.oyang.util.R;
    14. import com.oyang.util.ResponseUtil;
    15. public class UserAction extends ActionSupport implements ModelDriver{
    16. private User user=new User();
    17. private UserDao udao=new UserDao();
    18. //用户登录
    19. public String login(HttpServletRequest req, HttpServletResponse resp) {
    20. try {
    21. User u = udao.login(user);
    22. //通过账户名密码查到了用户记录
    23. if(u!=null) {
    24. /*ResponseUtil.writeJson(resp, new R()
    25. .data("code", 200)
    26. .data("msg", "登录成功"));*/
    27. ResponseUtil.writeJson(resp, R.ok(200, "登录成功"));
    28. }
    29. else {
    30. /*ResponseUtil.writeJson(resp, new R()
    31. .data("code", 0)
    32. .data("msg", "账户密码错误"));*/
    33. ResponseUtil.writeJson(resp, R.error(0, "用户名密码错误"));
    34. }
    35. } catch (Exception e) {
    36. e.printStackTrace();
    37. try {
    38. ResponseUtil.writeJson(resp, R.error(0, "登录失败"));
    39. } catch (Exception e1) {
    40. // TODO Auto-generated catch block
    41. e1.printStackTrace();
    42. }
    43. }
    44. return null;
    45. }
    46. //用户查询
    47. public String list(HttpServletRequest req, HttpServletResponse resp) {
    48. try {
    49. PageBean pageBean=new PageBean();
    50. pageBean.setRequest(req);
    51. List> users = udao.list(user, pageBean);
    52. //注意:LayUI中数据表格的格式
    53. ResponseUtil.writeJson(resp, R.ok(0, "用户数据查询成功",pageBean.getTotal(),user));
    54. } catch (Exception e) {
    55. e.printStackTrace();
    56. try {
    57. ResponseUtil.writeJson(resp, R.error(0, "用户查询失败"));
    58. } catch (Exception e1) {
    59. // TODO Auto-generated catch block
    60. e1.printStackTrace();
    61. }
    62. }
    63. return null;
    64. }
    65. //用户增加
    66. public String add(HttpServletRequest req, HttpServletResponse resp) {
    67. try {
    68. //rs是sql语句执行的影响行数
    69. int rs = udao.add(user);
    70. if(rs>0) {
    71. ResponseUtil.writeJson(resp, R.ok(200, "用户数据新增成功"));
    72. }
    73. else {
    74. ResponseUtil.writeJson(resp, R.ok(0, "用户数据新增失败"));
    75. }
    76. } catch (Exception e) {
    77. e.printStackTrace();
    78. try {
    79. ResponseUtil.writeJson(resp, R.error(0, "用户数据新增失败"));
    80. } catch (Exception e1) {
    81. // TODO Auto-generated catch block
    82. e1.printStackTrace();
    83. }
    84. }
    85. return null;
    86. }
    87. //用户删除
    88. public String del(HttpServletRequest req, HttpServletResponse resp) {
    89. try {
    90. //rs是sql语句执行的影响行数
    91. int rs = udao.del(user);
    92. if(rs>0) {
    93. ResponseUtil.writeJson(resp, R.ok(200, "用户数据删除成功"));
    94. }
    95. else {
    96. ResponseUtil.writeJson(resp, R.ok(0, "用户数据删除失败"));
    97. }
    98. } catch (Exception e) {
    99. e.printStackTrace();
    100. try {
    101. ResponseUtil.writeJson(resp, R.error(0, "用户数据删除失败"));
    102. } catch (Exception e1) {
    103. // TODO Auto-generated catch block
    104. e1.printStackTrace();
    105. }
    106. }
    107. return null;
    108. }
    109. //用户修改
    110. public String edit(HttpServletRequest req, HttpServletResponse resp) {
    111. try {
    112. //rs是sql语句执行的影响行数
    113. int rs = udao.add(user);
    114. if(rs>0) {
    115. ResponseUtil.writeJson(resp, R.ok(200, "用户数据修改成功"));
    116. }
    117. else {
    118. ResponseUtil.writeJson(resp, R.ok(0, "用户数据修改失败"));
    119. }
    120. } catch (Exception e) {
    121. e.printStackTrace();
    122. try {
    123. ResponseUtil.writeJson(resp, R.error(0, "用户修改新增失败"));
    124. } catch (Exception e1) {
    125. // TODO Auto-generated catch block
    126. e1.printStackTrace();
    127. }
    128. }
    129. return null;
    130. }
    131. @Override
    132. public User getModel() {
    133. // TODO Auto-generated method stub
    134. return user;
    135. }
    136. }

    三、用户管理前台代码

    UserManage.jsp页面

    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. <%@ include file="../../common/head.jsp" %>
    4. html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    5. <html>
    6. <head>
    7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    8. <script src="static/js/system/userManage.js">script>
    9. head>
    10. <body>
    11. <div class="layui-form-item">
    12. <div class="layui-inline">
    13. <label class="layui-form-label">用户名:label>
    14. <div class="layui-input-inline">
    15. <input type="text" id="name" placeholder="请输入用户名" autocomplete="off" class="layui-input">
    16. div>
    17. div>
    18. <div class="layui-inline">
    19. <div class="layui-input-inline">
    20. <button id="btn_search" type="button" class="layui-btn layui-btn-normal">
    21. <i class="layui-icon layui-icon-search">i>
    22. 查询
    23. button>
    24. <button id="btn_add" type="button" class="layui-btn">新增button>
    25. div>
    26. div>
    27. div>
    28. <table id="tb" lay-filter="tb" class="layui-table" style="margin-top:-15px;">table>
    29. <script type="text/html" id="toolbar">
    30. <button class="layui-btn layui-btn-sm" lay-event="edit">编辑button>
    31. <button class="layui-btn layui-btn-sm" lay-event="del">删除button>
    32. <button class="layui-btn layui-btn-sm" lay-event="reset">重置密码button>
    33. script>
    34. body>
    35. html>

    关于UserManage页面的js代码,小编把js代码封装成js文件,直接在页面中导入js文件即可

     userManage.js

    1. let layer,$,table;
    2. var row;
    3. layui.use(['jquery', 'layer', 'table'], function(){
    4. layer = layui.layer
    5. ,$ = layui.jquery
    6. ,table = layui.table;
    7. //初始化数据表格
    8. initTable();
    9. //绑定查询按钮的点击事件
    10. $('#btn_search').click(function(){
    11. query();
    12. });
    13. //绑定新增按钮的点击事件
    14. $('#btn_add').click(function(){
    15. row=null;
    16. open('新增');
    17. });
    18. });
    19. //1.初始化数据表格
    20. function initTable(){
    21. table.render({ //执行渲染
    22. elem: '#tb', //指定原始表格元素选择器(推荐id选择器)
    23. // url: 'user.action?methodName=list', //请求地址
    24. height:500, //自定义高度
    25. loading: false, //是否显示加载条(默认 true)
    26. cols: [[ //设置表头
    27. {field: 'id', title: '用户编号', width: 120},
    28. {field: 'name', title: '用户名', width: 120},
    29. {field: 'loginName', title: '登录账号', width: 140},
    30. {field: '', title: '操作', width: 220,toolbar:'#toolbar'},
    31. ]]
    32. });
    33. }
    34. //2.点击查询
    35. function query(){
    36. table.reload('tb', {
    37. url: $("#ctx").val()+'/user.action', //请求地址
    38. method: 'POST', //请求方式,GET或者POST
    39. loading: true, //是否显示加载条(默认 true)
    40. page: true, //是否分页
    41. where: { //设定异步数据接口的额外参数,任意设
    42. 'methodName':'list',
    43. 'name':$('#name').val()
    44. },
    45. request: { //自定义分页请求参数名
    46. pageName: 'page', //页码的参数名称,默认:page
    47. limitName: 'rows' //每页数据量的参数名,默认:limit
    48. }
    49. });
    50. }
    51. //3.对话框
    52. function open(title){
    53. layer.open({
    54. type: 2, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
    55. title:title,
    56. area: ['660px', '340px'], //宽高
    57. skin: 'layui-layer-rim', //样式类名
    58. content: $("#ctx").val()+'/jsp/system/userEdit.jsp', //书本编辑页面
    59. btn:['保存','关闭','批量新增'],
    60. yes: function(index, layero){
    61. //调用子页面中提供的getData方法,快速获取子页面的form表单数据
    62. //
    63. let data= $(layero).find("iframe")[0].contentWindow.getData();
    64. console.log(data);
    65. //判断title标题
    66. let methodName="add";
    67. if(title=="编辑")
    68. methodName="edit";
    69. $.post($("#ctx").val()+'/user.action?methodName='+methodName,
    70. data,function(rs){
    71. if(rs.success){
    72. //关闭对话框
    73. layer.closeAll();
    74. //调用查询方法刷新数据
    75. query();
    76. }else{
    77. layer.msg(rs.msg,function(){});
    78. }
    79. },'json');
    80. },
    81. btn2: function(index, layero){
    82. layer.closeAll();
    83. },
    84. /* btn3: function(index, layero){
    85. layer.msg("批量新增");
    86. return false;
    87. }*/
    88. });
    89. }

     用户管理界面效果

    增加

    界面:

    1. <%@ page language="java" contentType="text/html; charset=UTF-8"
    2. pageEncoding="UTF-8"%>
    3. <%@ include file="../../common/head.jsp" %>
    4. html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    5. <html>
    6. <head>
    7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    8. <script type="text/javascript" src="${pageContext.request.contextPath }/static/js/system/userEdit.js">script>
    9. <title>用户新增title>
    10. head>
    11. <style>
    12. .layui-form-select dl{
    13. max-height:150px;
    14. }
    15. style>
    16. <body>
    17. <div style="padding:10px;">
    18. <form class="layui-form layui-form-pane" lay-filter="user">
    19. <input type="hidden" name="id"/>
    20. <div class="layui-form-item">
    21. <label class="layui-form-label">用户名称label>
    22. <div class="layui-input-block">
    23. <input type="text" id="name" name="name" autocomplete="off" placeholder="请输入用户名" class="layui-input">
    24. div>
    25. div>
    26. <div class="layui-form-item">
    27. <label class="layui-form-label">用户角色label>
    28. <div class="layui-input-block">
    29. <select name="rid">
    30. <option value="">---请选择---option>
    31. <option value="1">管理员option>
    32. <option value="2">发起者option>
    33. <option value="3">审批者option>
    34. <option value="4">参与者option>
    35. <option value="5">会议管理员option>
    36. select>
    37. div>
    38. div>
    39. <div class="layui-form-item">
    40. <label class="layui-form-label">登录账号label>
    41. <div class="layui-input-block">
    42. <input type="text" name="loginName" lay-verify="required" placeholder="请输入账号" autocomplete="off" class="layui-input">
    43. div>
    44. div>
    45. <div class="layui-form-item">
    46. <label class="layui-form-label">登录密码label>
    47. <div class="layui-input-block">
    48. <input type="password" name="pwd" placeholder="请输入密码" autocomplete="off" class="layui-input">
    49. div>
    50. div>
    51. form>
    52. div>
    53. body>

    js代码:

    1. let layer,form,$;
    2. layui.use(['layer','form','jquery'],function(){
    3. layer=layui.layer,form=layui.form,$=layui.jquery;
    4. initData();
    5. });
    6. function initData(){
    7. console.log(parent.row);
    8. if(null!=parent.row){
    9. //因为layui.each内部的逻辑问题导致的所以要先深拷贝一份然后再去val
    10. //parent.row:表格行对象
    11. /**
    12. * table的数据在父页面 userMange.jsp
    13. * 点击编辑按钮的时候,当前行赋值给子页面userEdit.jsp
    14. */
    15. form.val('user',$.extend({}, parent.row||{}));//赋值 {name:zs} || null||{}
    16. $('#name').attr('readonly','readonly');
    17. }
    18. }
    19. function getData(){
    20. //
    21. //取user from中的值
    22. return form.val('user');
    23. }

    增加界面效果:

    执行结果:

     编辑和修改

    1. //在页面中的中必须配置lay-filter="tb_goods"属性才能触发属性!!!
    2. table.on('tool(tb)', function (obj) {
    3. row = obj.data;
    4. if (obj.event == "edit") {
    5. open("编辑");
    6. }else if(obj.event == "del"){
    7. layer.confirm('确认删除吗?', {icon: 3, title:'提示'}, function(index){
    8. $.post($("#ctx").val()+'/user.action',{
    9. 'methodName':'del',
    10. 'id':row.id
    11. },function(rs){
    12. if(rs.success){
    13. //调用查询方法刷新数据
    14. query();
    15. }else{
    16. layer.msg(rs.msg,function(){});
    17. }
    18. },'json');
    19. layer.close(index);
    20. });
    21. }else{
    22. }
    23. });
    24. 修改运行效果:

      修改前绑值:

       修改信息:

      修改后:

      删除效果:

      删除后:

      可以看见,数据也变回了11条。


        OK,今日的分享就到此结束啦,如果对个位看官有帮助的话可以留下免费的赞哦(收藏或关注也行),如果文章中有什么问题或不足以及需要改正的地方可以私信博主,博主会做出改正的。个位看官,小陽在此跟大家说拜拜啦!

    25. 相关阅读:
      HTTP协议简介
      《Python编程无师自通》读书笔记
      (四)Vue之数据绑定
      Electron常见问题 63 - sentry上传自定义pdb符号表
      牛客网:设计LRU缓存结构 设计LFU缓存结构
      Golang的数组、切片、映射
      各个大学的校训
      图像新型拼接
      web:[RoarCTF 2019]Easy Calc
      《算法系列》之模拟
    26. 原文地址:https://blog.csdn.net/weixin_65211978/article/details/125903575