文章目录

  • 弹出层layer
  • form表单
  • 增删改查所有代码

如果想用layui来完成增删改查,那么要会用弹出层和form表单这两个组件是必须的,所以今天就来介绍一些如何用layui完成基本的增删改查

弹出层layer

因为layui的特性,每次不管使用哪个组件,都要先把它的模块加载出来
比如我要用layer和form
那么就需要先这样定义,你的操作都是在这个里面进行,当然页可以一次性加载所有模块,详情去看api文档https://www.layui.com/doc/

layui.use(['layer','form'], function(){})

先看一下我们在一个点击事件下定义一个弹出层吧,

   $("#add").click(function(){layer.open({type: 1, title:"新增",area:['50%','50%'],btn: ['确定', '取消'], content: $("#window"),yes:function(index,layero){}}); })

我们用到的比较重要的几个参数
type:layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层),你用哪种,那么你想对应的内容的路径也要符合那种的格式,比如如果你用页面层你就不能用id去取你的弹出层,而必须定义一个页面

content也就是我们弹出层的内容路径了,根据你弹出层的类型来获取

area宽高:不定义虽然它默认是auto自动适应,但是可能不一定符合自己的样式

btn按钮:信息框模式时,btn默认是一个确认按钮,其它层类型则默认不显示,加载层和tips层则无效。定义的第一个按钮回调的是yes函数,后面定义的都是调用的no
我们要利用弹出层来实现增加和修改的页面,我在这里说一下比较重要的几个参数

form表单

给表单绑定修改要回显的值
表单初始赋值:form.val(‘lay-filter的值’, object);

table.on('tool(test)', function(obj){
var data = obj.data; layer.open({type: 1 ,title: ['修改信息'],btn: ['确定', '取消'] ,shadeClose: true,shade: 0 ,maxmin: true ,content:$("#window")  ,success:function(layero,index){$('#bid').val(data.bid);$('#bname').val(data.bname); $('#price').val(data.price);  }});});

利用$.getJSON来把值传递到后台
$.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] )

url是必选参数,表示json数据的地址;
data是可选参数,用于请求数据时发送数据参数;
success是可参数,这是一个回调函数,用于处理请求到的数据。

表单的事件监听:
form.on(‘event(过滤器值)’, callback);
例如提交事件:form.on(‘submit(*)’{ )}
下拉事件:form.on(‘select(filter)’, function(data){ } )}

增删改查所有代码

图方便,没有把js和jsp分开了

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/layui/css/layui.css">
<script type="text/javascript" src="${pageContext.request.contextPath}/layui/layui.js"></script>
<script type="text/javascript">//下拉列表layui.use('element', function(){var element = layui.element;  });
//数据表格
layui.use(['table','layer','form'], function(){var table = layui.table;var layer=layui.layer;var form=layui.form;var $=layui.$;var url=$("#ctx").val();table.render({elem: '#demo',url:'${pageContext.request.contextPath}/BookAction.action?methodName=list',method:'post',page:true,cols: [[{type:'checkbox',fixed:'left'},{field:'bid', title: 'ID'},{field:'bname', title: '书名'},{field:'price', title: '价格'},{field:'right', title: '操作', width:250,toolbar:"#barDemo"}]]});$("#add").click(function(){layer.open({type: 1, title:"新增",area:['50%','50%'],btn: ['确定', '取消'], content: $("#window"),yes:function(index,layero){$.getJSON(url+'/BookAction.action?methodName=addBook',{bid: $('#bid').val(),bname: $('#bname').val(),price: $('#price').val()},function(data){//根据后台返回的参数,来进行判断if(data>0){layer.alert('增加成功',{icon:1,title:'提示'},function(i){layer.close(i);layer.close(index);//关闭弹出层$("#book")[0].reset()//重置form})table.reload('demo',{//重载表格page:{curr:1}})}});}}); })//获取按钮table.on('tool(test)', function(obj){var data = obj.data; //获得当前行数据var tr=obj.tr//活动当前行tr 的  DOM对象if(obj.event === 'del'){ //删除layer.confirm('确定删除吗?',{title:'删除'}, function(index){//向服务端发送删除指令og$.getJSON(url+'/BookAction.action?methodName=del',{bid:data.bid}, function(ret){layer.close(index);//关闭弹窗table.reload('demo', {//重载表格page: {curr: 1// 重新从第 1 页开始}})});layer.close(index);});} else if(obj.event === 'edit'){ //编辑layer.open({type: 1 //Page层类型,skin: 'layui-layer-molv',area: ['380px', '270px'],title: ['编辑书本信息','font-size:18px'],btn: ['确定', '取消'] ,shadeClose: true,shade: 0 //遮罩透明度,maxmin: true //允许全屏最小化,content:$("#window")  //弹窗路径,success:function(layero,index){$('#bid').val(data.bid);$('#bname').val(data.bname); $('#price').val(data.price);  },yes:function(index,layero){$.getJSON(url+'/BookAction.action?methodName=edit',{bid: data.bid,bid: $('#bid').val(),bname: $('#bname').val(),price: $('#price').val()},function(data){//根据后台返回的参数,来进行判断if(data>0){layer.alert('编辑成功',{icon:1,title:'提示'},function(i){layer.close(i);layer.close(index);//关闭弹出层$("#book")[0].reset()//重置form})table.reload('demo',{//重载表格page:{curr:1}})}});}});}});  })</script><title>layui</title>
</head><body class="layui-layout-body"><div class="site-text" style="margin: 5%; display: none" id="window"  target="test123">    <form class="layui-form" id="book" method="post" lay-filter="example"><div class="layui-form-item"><label class="layui-form-label">书本编号</label><div class="layui-input-block"><input type="text" id="bid" name="bid" lay-verify="title" autocomplete="off" placeholder="请输入编号" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">书本名称</label><div class="layui-input-block"><input type="text" id="bname" name="bname" lay-verify="title" autocomplete="off" placeholder="请输入名称" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">书本价格</label><div class="layui-input-block"><input type="text" id="price" name="price" lay-verify="title" autocomplete="off" placeholder="请输入价格" class="layui-input"></div></div><!--  <div class="layui-form-item"><div class="layui-input-block"><button class="layui-btn" lay-submit="" lay-filter="demo1">立即提交</button></div></div> --></form>
</div><input type="hidden" id="ctx" value="${pageContext.request.contextPath }" />
<div class="layui-layout layui-layout-admin"><div class="layui-header"><div class="layui-logo">阳某的后台</div><!-- 头部区域(可配合layui已有的水平导航) --><ul class="layui-nav layui-layout-left"><li class="layui-nav-item"><a href="">控制台</a></li><li class="layui-nav-item"><a href="">商品管理</a></li><li class="layui-nav-item"><a href="">用户</a></li><li class="layui-nav-item"><a href="javascript:;">其它系统</a><dl class="layui-nav-child"><dd><a href="">邮件管理</a></dd><dd><a href="">消息管理</a></dd><dd><a href="">授权管理</a></dd></dl></li></ul><ul class="layui-nav layui-layout-right"><li class="layui-nav-item"><a href="javascript:;"><img src="http://t.cn/RCzsdCq" class="layui-nav-img">阳某</a><dl class="layui-nav-child"><dd><a href="">基本资料</a></dd><dd><a href="">安全设置</a></dd></dl></li><li class="layui-nav-item"><a href="">退了</a></li></ul></div><div class="layui-side layui-bg-black"><div class="layui-side-scroll"><!-- 左侧导航区域(可配合layui已有的垂直导航) --><ul class="layui-nav layui-nav-tree"  lay-filter="test"><li class="layui-nav-item layui-nav-itemed"><a class="" href="javascript:;">所有商品</a><dl class="layui-nav-child"><dd><a href="javascript:;">列表一</a></dd><dd><a href="javascript:;">列表二</a></dd><dd><a href="javascript:;">列表三</a></dd><dd><a href="">超链接</a></dd></dl></li><li class="layui-nav-item"><a href="javascript:;">解决方案</a><dl class="layui-nav-child"><dd><a href="javascript:;">列表一</a></dd><dd><a href="javascript:;">列表二</a></dd><dd><a href="">超链接</a></dd></dl></li><li class="layui-nav-item"><a href="">云市场</a></li><li class="layui-nav-item"><a href="">发布商品</a></li></ul></div></div><div class="layui-body"><!-- 内容主体区域 --><div style="padding: 15px;"><div class="layui-inline">书名:<div class="layui-inline"><input class="layui-input" name="s_title" autocomplete="off" /></div><button class="layui-btn" lay-submit="" lay-filter="reload">搜索</button><button id="add" class="layui-btn" lay-submit="" lay-filter="pageSubmit">新增</button></div><table id="demo" lay-filter="test"></table><script type="text/html" id="barDemo"><a class="layui-btn layui-btn-mini" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-mini" lay-event="del">删除</a></script></div></div><div class="layui-footer"><!-- 底部固定区域 -->© layui.com - 底部固定区域</div>
</div>
</body>
</html>

Dao方法,这里用的是mvc框架

package com.xy.dao;import java.sql.SQLException;
import java.util.List;
import java.util.Map;import com.xy.util.JsonBaseDao;
import com.xy.util.JsonUtils;
import com.xy.util.PageBean;
import com.xy.util.StringUtils;public class BookDao extends JsonBaseDao {/*** 查所有* @param paMap* @param pageBean* @return* @throws InstantiationException* @throws IllegalAccessException* @throws SQLException*/public List<Map<String, Object>> list(Map<String, String[]> paMap,PageBean pageBean) throws InstantiationException, IllegalAccessException, SQLException{String sql="select * from t_mvc_book where true ";String bname = JsonUtils.getParamVal(paMap, "bname");if(StringUtils.isNotBlank(bname)) {sql+=" and bname like '%"+bname+"%'";}return super.executeQuery(sql, pageBean);}/*** 增加* @param paMap* @return* @throws NoSuchFieldException* @throws SecurityException* @throws IllegalArgumentException* @throws IllegalAccessException* @throws SQLException*/public int add(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {String sql="insert into t_mvc_book(bid,bname,price) values(?,?,?)";return super.executeUpdate(sql, new String[] {"bid","bname","price"}, paMap);}public int del(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {String sql="delete from t_mvc_book where bid=?";return super.executeUpdate(sql, new String[] {"bid"}, paMap);}public int edit(Map<String, String[]> paMap) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, SQLException {String sql="update t_mvc_book set bname=?,price=? where bid=?";return super.executeUpdate(sql, new String[] {"bname","price","bid"}, paMap);}
}

Action

package com.xy.web;import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.xy.dao.BookDao;
import com.xy.util.JsonUtils;
import com.xy.util.PageBean;
import com.xy.util.ResponseUtil;
import com.zking.framework.ActionSupport;public class BookAction extends ActionSupport {private BookDao bookDao=new BookDao();public String list(HttpServletRequest req,HttpServletResponse resp) throws JsonProcessingException, Exception {PageBean pageBean=new PageBean();pageBean.setRequest(req);List<Map<String, Object>> list = this.bookDao.list(req.getParameterMap(),pageBean);Map map=new HashMap();map.put("data", list);map.put("code", 0);map.put("count", pageBean.getTotal());ObjectMapper om=new ObjectMapper();ResponseUtil.write(resp, om.writeValueAsString(map));return null;}public int addBook(HttpServletRequest req,HttpServletResponse resp) throws JsonProcessingException, Exception {int add = bookDao.add(req.getParameterMap());ObjectMapper om=new ObjectMapper();ResponseUtil.write(resp, om.writeValueAsString(add));return add;}public int del(HttpServletRequest req,HttpServletResponse resp) throws JsonProcessingException, Exception {int del = bookDao.del(req.getParameterMap());ObjectMapper om=new ObjectMapper();ResponseUtil.write(resp, om.writeValueAsString(del));return del;}public int edit(HttpServletRequest req,HttpServletResponse resp) throws JsonProcessingException, Exception {req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("html/text;charset=utf-8");int edit = bookDao.edit(req.getParameterMap());ObjectMapper om=new ObjectMapper();ResponseUtil.write(resp, om.writeValueAsString(edit));return edit;}
}

最后增删查改也就完成了

layui的layer弹出层和form表单相关推荐

  1. layui + layer弹出层增删改的操作

    一.弹出层说明 /* ========== 弹出层说明 ==============*/function useradd() { // useradd(),点击事件//var pageNum = $( ...

  2. layui内置模块(layer弹出层)

    前面我们已经对layui前端框架的页面元素进行了简单的学习,但是作为一个可用的程序,仅仅是长的好看,并没有那个什么用:在好看的同时还需要实用和酷炫,实用就需要实现我们方便的和后端进行数据交互,酷炫就是 ...

  3. php layer弹出层更改背景,layui.layer 弹出层背景透明,前景无阴影实现方案

    先上具体实现方法. 首先,在 css 里给 layer 弹出层写个自定义 skin (这点不明白的同学请出门左转 layui 官网文档):.myskin{        background-colo ...

  4. layui弹出层html,layer弹出层

    layer 弹出层,怎么只让他弹出一次.在线等 我昨天用这个插件的时候也有这个问题,弹出内容大了就居不了中.这是组件不完美的地方,他设置了top和left值,而且是固定的.这种弹出层都是绝对定位的 所 ...

  5. jQuery引起的用layer弹出层上传文件不能获取文件名的解决(thinkphp5)

    一.问题 在用thinkphp5做到用layer弹出层上传文件过程中,一直不能成功.详细代码如下: HTML代码: <div id="importBox" v-show=&q ...

  6. JavaScript学习笔记(九)(验证框架,layer弹出层)

    JavaScript学习笔记(九) 一.jQuery Validate验证框架 1.引入相关插件路径 2. 修改一些规则 3. 自定义验证规则 4.异步验证 整体代码 二.layer弹出层 1.引入相 ...

  7. layer执行父窗口ajax方法,layer 弹出层 回调函数调用 弹出层页面 函数

    1.项目中用到layer 弹出层,定义一个公用的窗口,问题来了窗口弹出来了,如何保存页面上的数据呢?疯狂百度之后,有了结果,赶紧记下. 2.自己定义的公共页面方法: layuiWindow: func ...

  8. php layer弹出层更改背景,详解Layer弹出层样式

    前言:学习layer弹出框,之前项目是用bootstrap模态框,后来改用layer弹出框,在文章的后面,我会分享项目的一些代码(我自己写的). layer至今仍作为layui的代表作,她的受众广泛并 ...

  9. html5相对父元素定位,layer弹出层设置相对父级元素定位

    layer弹出层默认是相对body固定定位的,可是项目中一般需要相对某个盒子相对定位,下面是个加载弹层例子: var loadIndex = layer.open({ type: 3, //3 表示加 ...

  10. layer弹出层扩展自定义样式

    layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 官网 http://layer.layui.com/ l ...

最新文章

  1. Vue - 表单
  2. Calendar如何只显示“一、二、三...日”,不显示“星期”
  3. RL之DQN:基于TF训练DQN模型玩“打砖块”游戏
  4. Qt Creator添加新的自定义向导
  5. A - Beautiful Matrix
  6. git php自动发布,使用 Git Hooks 实现自动部署PHP项目
  7. Upload LABS Pass-11
  8. JavaScript流程分支结构(1)
  9. apple iphone 3gs 有锁机 刷机 越狱 解锁 全教程(报错3194,3014,1600,短信发不出去等问题可参考)...
  10. 桌面时间的最佳管理者-软媒时间_我是亲民_新浪博客
  11. 蓝桥秘密冲刺计划(9.17)年号字串
  12. 全球市场喷干水果粉市场销售规模及投资盈利预测报告(新版)2022年
  13. 利率浮动幅度bp什么意思,浮动利率bps换算百分比
  14. 简述eureka的自我保护模式? 如何配置其自我保护模式
  15. navicat导入excel文件的步骤以及可能碰到的问题
  16. 用Python编写斐波那契数列(Fibonacci Sequence)
  17. taobao app 爬虫杂谈
  18. apmserv php升级方法,APMServ5.2.6 升级php5.2 到 5.3版本,及Memcache升级
  19. 用vscode编写matlab
  20. 助力全球抗疫,腾讯加入Linux基金会公共卫生计划

热门文章

  1. Excel2019合并两列内容单元格内容自动换行的方法
  2. 高项考试-必背的知识点
  3. jQuery灯箱插件lightBox使用方法
  4. WeWork中国实现全面本土化运营;巴黎欧莱雅沙龙专属全球首家旗舰沙龙开业 | 美通企业日报...
  5. 一图看懂人工智能技术体系
  6. latch详解——转自itpub精华帖(引)
  7. video禁止自动全屏
  8. pandas+groupby对南京二手房进行数据可视化及大图显示
  9. 前端知识3.2nodejs安装以及初始化目录
  10. 执行npm install报错:npm ERR! code EINTEGRITY,npm ERR! 最彻底,最实用的方法就是更新node版本