文档章节

layui结合jfinal增删改查

一个yuanbeth
 一个yuanbeth
发布于 2017/09/11 07:39
字数 1010
阅读 159
收藏 1

一、遇到问题及解决

1、触发事件要先定义jq符号,然后在调用on方法,如

  var $ = layui.$;
  //新增用户
  $('.userTable #add').on('click', function(){
  });

2、layui怎么打开弹出层的同时,调用后台方法,让弹出层显示后台返回的页面?解决方法如下: 这样就可以:

layer.open({
          type: 2
          ,title:'查看'
          ,content:'/user/form?id=789a3bf1265e4e00ba0b2cdb57c5f615'
      });

3、用layui结合jfinal,用form表单action的方式提交,怎么根据返回值判断是否操作成功? 用form表单action的方式提交,我没找到方法,我改为下面的方式:

  //监听提交
  form.on('submit(userSubmit)', function(data){
	  $.post('/user/save',data.field,function(result){
		  if(result==0){
			  layer.msg('提交成功!',
			    function(){
				  window.parent.location.reload();
			     });
			     }else{
			       layer.msg('提交失败!');
			 }
		});
		return false;
  });

二、增删改查点击事件及弹出弹出框

 < script >
layui.use('table', function ()
{
    var table = layui.table;
    var $ = layui.$;
    
    //监听工具条
    table.on('tool(user)', function (obj)
    {
        //列表所有属性及数据
        var data = obj.data;
        
        //列表事件(查看)
        if (obj.event === 'detail')
        {
            checkUser(data.id);
        }
        
        //列表事件(删除)
        if (obj.event === 'del')
        {
            layer.confirm('真的删除行么', function (index)
            {
                deleteUser(data.id);
                layer.close(index);
            } );
        }
        
        //列表事件(编辑)
        if (obj.event === 'edit')
        {
            editUser(data.id);
        }
    });
    
    //新增用户
    $('.userTable #add').on('click', function ()
    {
        addUser()
    });
});

//查看用户
function checkUser(userId)
{
    layer.open(
    {
        type : 2,
        title : '查看',
        content : '/user/view?id=' + userId,
        area : ['450px', '450px'],
        closeBtn : 1
    });
}

//删除用户
function deleteUser(userId)
{
    $.ajax(
    {
        type : 'get',
        url : "/user/delete?id=" + userId,
        success : function (flag)
        {
            if (flag == 0)
            {
                layer.msg('删除成功!',
                    function ()
                {
                    window.parent.location.reload();
                });
            }
            else
            {
                layer.msg('删除失败!');
            }
        }
        
    });
}

//新增用户
function addUser()
{
    layer.open(
    {
        type : 2,
        title : '新增',
        content : '/user/form',
        area : ['450px', '450px'],
        closeBtn : 1
    });
}

//编辑用户
function editUser(userId)
{
    layer.open(
    {
        type : 2,
        title : '编辑',
        content : '/user/form?id=' + userId,
        area : ['450px', '450px'],
        closeBtn : 1
    });
}
<  / script >

2、新增编辑表单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
</head>

<body>
  #@form_layout()

  <form class="layui-form">
    <div class="layui-form-item">
      <label class="layui-form-label">用户名</label>

      <div class="layui-input-inline">
        <input name="user.id" class="layui-input" type="hidden" value="#(user.id??)" /> <input name="user.user_name" class="layui-input" value="#(user.user_name??)" />
      </div>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">邮箱</label>

      <div class="layui-input-inline">
        <input name="user.email" class="layui-input" value="#(user.email??)" />
      </div>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">手机号</label>

      <div class="layui-input-inline">
        <input name="user.telephone" class="layui-input" value="#(user.telephone??)" />
      </div>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">性别</label>

      <div class="layui-input-inline">
        <input name="user.sex" value="1" title="男" type="radio" checked="checked" /> <input name="user.sex" value="2" title="女" type="radio" checked="checked" />
      </div>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">岗位</label>

      <div class="layui-input-inline">
        <select name="user.post" lay-filter="aihao">
          <option value="1" selected="selected">
            行政
          </option>

          <option value="2" selected="selected">
            UI
          </option>

          <option value="3" selected="selected">
            测试
          </option>

          <option value="4" selected="selected">
            开发
          </option>
        </select>
      </div>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">地址</label>

      <div class="layui-input-inline">
        <input name="user.adress" class="layui-input" value="#(user.adress??)" />
      </div>
    </div>

    <div class="layui-form-item">
      <div class="layui-input-block">
        <button class="layui-btn" lay-submit="" lay-filter="userSubmit">立即提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
      </div>
    </div>
  </form>
</body>
</html>

 < script >
layui.use('form', function ()
{
    var form = layui.form;
    var $ = layui.$;
    
    //监听提交
    form.on('submit(userSubmit)', function (data)
    {
        $.post('/user/save', data.field, function (result)
        {
            if (result == 0)
            {
                layer.msg('提交成功!',
                    function ()
                {
                    window.parent.location.reload();
                });
            }
            else
            {
                layer.msg('提交失败!');
            }
        });
        return false;
    });
});
<  / script >

3、查看表单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
</head>

<body>
  #@form_layout()

  <form class="layui-form">
    <div class="layui-form-item">
      <label class="layui-form-label">用户名</label> <label class="layui-form-label">#(user.user_name)</label>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">邮箱</label> <label class="layui-form-label">#(user.email)</label>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">手机号</label> <label class="layui-form-label">#(user.telephone)</label>
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">性别</label> #if(user.sex??==1) <label class="layui-form-label">男</label> #end #if(user.sex??==2) <label class="layui-form-label">女</label> #end
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">岗位</label> #if(user.post??=="1") <label class="layui-form-label">行政</label> #end #if(user.post??=="2") <label class="layui-form-label">UI</label> #end #if(user.post??=="3") <label class="layui-form-label">测试</label> #end #if(user.post??=="4") <label class="layui-form-label">开发</label> #end
    </div>

    <div class="layui-form-item">
      <label class="layui-form-label">地址</label> <label class="layui-form-label">#(user.adress)</label>
    </div>
  </form><script type="text/javascript">
//<![CDATA[
  layui.use('form', function(){
  var form = layui.form;
  });
  //]]>
  </script>
</body>
</html>

4、后台java方法

	/**
	 * 渲染新增,编辑页面
	 */
	public void form(){
		String id = getPara("id");
		User user = userService.findUserById(id);
		if(StrKit.notBlank(id)){
		    setAttr("user", user);
		}
		render("form.html");
	}
	
	/**
	 * 新增,编辑 
	 */
	public void save(){
	User user =	getModel(User.class);
	 boolean isSuccess = user.saveOrUpdate();
	 if(isSuccess) {
			renderJson(0);//保存成功
		} else {
			renderJson(2);//保存失败			
		}
	}
	
	/**
	 * 查看
	 */
	public void view(){
		String id = getPara("id");
		User user = userService.findUserById(id);
		setAttr("user", user);
		render("view.html");
	}

	/**
	 * 根据用户id删除用户
	 */
	public void delete() {
		String id = getPara("id");
		boolean flag = userService.deleteById(id);
		if(flag) {
			renderJson(0);
		} else {
			renderJson(1);
		}
	}

三、至此,layui结合jfinal增删改查完毕

© 著作权归作者所有

共有 人打赏支持
一个yuanbeth
粉丝 81
博文 112
码字总数 68180
作品 0
深圳
程序员
私信 提问
加载中

评论(2)

一个yuanbeth
一个yuanbeth

引用来自“JFinal”的评论

layout 有更好的用法,可以参考一下 jfinal.com 官网的 jfinal demo 中的 __layout.html,这种用法是将 html head body 等等这类重复内容封装为一个 layout,然后实际的内容部分是页面主体

好的,多谢指教
JFinal
JFinal
layout 有更好的用法,可以参考一下 jfinal.com 官网的 jfinal demo 中的 __layout.html,这种用法是将 html head body 等等这类重复内容封装为一个 layout,然后实际的内容部分是页面主体
2017-02-14

学习内容:Jfinal框架通过文档搭建成功,angular和Jfinal结合的框架项目学习 完成内容:邮箱签名任务,OSChina Team加入,安装环境 工作问题:Jfinal框架主要出现问题是JFinal.start("WebRo...

Full_Session
2017/02/14
1
1
分享一个自己写的JFinal的BaseController (2)

分享一个自己写的JFinal的BaseController (1) 经过@JFinal 的提示,改进了下BaseController ================================ 3月10号又有改进 分享一个自己写的JFinal的BaseController (3...

本人纯属虚构
2014/02/28
0
5
金钱管理软件 jfinal money 4.0 更简单了

更新说明: 由于许多人下载代码后,会反映CRUD封装可读性太差,这次对前台进行了全面重构。 把CRUD封装改为代码自动生成,这样对简单的增删改查仍然可以通过配置,而不写任何前台代码,并且项...

Fly的狐狸
2015/01/08
4.9K
35
关于JFinal主键设置的问题

我想请教一下一个JFianl相关的问题,JFinal默认的主键就是ID,但是我的数据库表不想设置主键应该怎么做呢?还是JFinal必须有主键才能进行增删改查的操作?

小米_1993
2016/09/26
1K
2
能否将Jfinal再简化一些?

@JFinal 你好,想跟你请教个问题:有一事请教,JFinal要对数据库中的每张表生成一个controler(或者是做成model),每个类几乎一模一样,又要为每张表做增删改查的界面,如果你有100张表就要...

hyhdl888
2015/03/19
1K
19

没有更多内容

加载失败,请刷新页面

加载更多

Word Pattern(leetcode290)

Given a pattern and a string str, find if str follows the same pattern. Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empt......

woshixin
3分钟前
0
0
Kubernetes 1.13.1快速升级

Kubernetes 1.13.1已经正式发布,快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。注意Kubernetes 1.12.3版本暂时不支...

openthings
6分钟前
0
0
多线程的实现方式

多线程是指 一个程序运行时,产生或使用了不止一个线程。 线程的生命周期是怎么样的,下面这张图我们可以看出些端倪: 这章我们主要讨论多线程实现的方式,基础知识部分我们可以下来再恶补。...

搬砖大侠
18分钟前
0
0
新人千万不要在 Windows 上使用 Ruby on Rails

标题:新人千万不要在 Windows 上使用 Ruby on Rails 副标题:鼓励新人在 Linux 和 Mac 上使用 Ruby on Rails ! 原则:要走寻常路,不要学美特斯邦伟! "在 Windows上 使用 Ruby on Rails "是...

Jason909
26分钟前
0
0
day177-2018-12-14-英语流利阅读-待学习

艾滋病的治愈方法是否触手可及? Daniel 2018-12-14 1.今日导读 几十年来,艾滋病一直是世界上最难对付的“超级绝症”之一,从人类历史上第一次诊断出艾滋病病例的 20 世纪 80 年代早期到 20...

飞鱼说编程
52分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部