Layui将Table数据转为表单编辑与展示的完整流程

作者:清欢时间:2026-10-23 11:29:45浏览:474

本文介绍如何在Layui中将table.render生成的表格数据转换为表单形式进行展示和编辑。通过AJAX获取数据,动态生成列表项并存储JSON数据,点击列表项触发表单渲染。同时包含编辑、删除及保存功能的实现代码,确保数据交互的完整性与准确性。

初始化表格与数据获取

首先需要初始化表格,使用table.render配置相关参数,包括指定表格容器、请求类型、数据源URL以及传递的查询条件。


table.render({
  id : 'table',
  type:'post',
 elem : '#table',
 url : url,
 where : {'Id' : $data.Id},
 page:false,
 cols : [ [ //表头
 
  ]]
})

接着通过AJAX请求获取具体数据,确保URL路径正确,并将返回的每一行数据转换为JSON字符串,隐藏在span标签中以便后续处理。

AJAX数据请求与处理


$.ajax({
      dataType:'json',
      type:'post',
      url:url,
      data:{'Id': $data.Id},
      success:function (data) {
         $.each(data.rows,function (k,v) {
           var myJson=JSON.stringify(v);//转化格式便于传递
           //遍历展示,将每一行数据分别隐藏在span便签
          $(".ul").append("<li value="+v.id+" class='layui-btn layui-btn-add '>"
            +v.Name+
            "<span class='vid'>"+myJson+"</span>"+
            "</li>"
          )
           var nowTemp=$("li[value='"+temp+"']");//监测编辑的对应行
          if(nowTemp){
            nowTemp.addClass("layui-table-double");
          }
})
  
}
})

利用事件委托监听ul下动态生成的li元素,当点击某个li时,解析其中隐藏的JSON数据,并调用表单渲染方法将数据展示在表单中。

动态列表与表单渲染


 $('ul').on('click', 'li', function () {
    var data=JSON.parse($(this).find('.vid').text());
    $(this).addClass("layui-table-double");
    $(this).siblings().removeClass("layui-table-double");
    //点击每个动态生成的li标签,可以将其内部span隐藏的数据展示出来
    appmod.formRender('Form',data);
  });

实现编辑功能,当用户点击编辑按钮时,获取当前选中项的JSON数据,并重新渲染表单,允许用户对数据进行修改。

编辑功能实现


$('.edit').click(function () {
    var dataTemp=$(".layui-table-double span").text();
    var data=JSON.parse(dataTemp);
    appmod.formRender('Form',data);
    //修改后重新提交
  })

添加删除功能,点击删除按钮时,弹出确认框,确认后通过AJAX发送删除请求,并在成功后刷新页面以更新列表显示。

删除功能实现


  $('.del').click(function () {
    var dataTemp=$(".layui-table-double span").text();
    var data=JSON.parse(dataTemp);
    layer.confirm('真的要删除吗?', function(index) {
      $.ajax(url,{'id' : data.id},function(){
        layer.close(index);
        window.location.reload()
      });
    });
  })

实现保存功能,监听表单提交事件,获取表单数据并进行必要转换,通过AJAX提交数据,成功后清空列表并重新加载数据以反映最新状态。

保存功能实现


var temp=0
form.on('submit(save)', function(data){
    try{
      var formData = data.field;
      appmod.convertFormData('Form',formData);
      var ids = []; 
      formData = $.extend(formData,{Ids:ids});
      $.ajax(url,formData,function(resp){
        $(".ul li").remove();
        var newId=$("[name=id]").val();
        temp=newId;
      //调用本文第二段代码块
      });
    }catch(e){
      $.showErr('未知异常');
    }
    return false;
  });

以上步骤完整展示了如何将Layui表格数据转换为表单进行展示和编辑,包括增删改查的完整流程,供参考使用。

作者最新文章