layui 动态表格 的ajax写法
layui-tree实现Ajax异步请求后动态添加节点的方法

layui-tree实现Ajax异步请求后动态添加节点的⽅法最近在弄⼀个产品分类管理,是⼀个树形菜单的形式,⽤的是layui-tree ,由于它并没有动态添加节点,所以只能⾃⼰刚了。
⼤概效果如图体的实现是当我⿏标移⼊“长袖”这个分类时,出现三个icon (如图),按“增加”按钮,会发送ajax异步请求到后台,在数据库库中增加以“长袖”为⽗类id 的⼀个⼦分类,成功后返回到前台,然后相应的节点下动态添加⼦节点,主要是通过append 来增加html元素<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>多级分类管理</title><meta name="renderer" content="webkit"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="format-detection" content="telephone=no"><link rel="stylesheet" type="text/css"href="layui/css/layui.css" rel="external nofollow" media="all"></head><style>.panel {margin-bottom: 0;}i{cursor: pointer !important ;cursor: hand !important;}body{}a:hover{background-color:#E6E6E6 ;}.active{background:#E6E6E6;}.hide{display:none;}</style><body style="height:100%;"><div style="height:100%;"><div class="panel panel-default"style=" position:fixed; width: 250px; height:800px; overflow:auto;"><div class="panel-body" style=" "><h4 style="text-align: center;">分类管理</h4><ul unselectable="on" id="demo"style="margin-top: 30px; -moz-user-select: none; -webkit-user-select: none;"onselectstart="return false;" ></ul><button id="addcate" class="layui-btn layui-btn-primary" style="margin-top:20px; margin-left:28px; width:70%;">添加分类</button></div></div></div><script type="text/javascript" src="layui/layui.js"></script><script type="text/javascript">e(['jquery','layer','element','form','tree'],function(){window.jQuery = window.$ = layui.jquery;yer = yer;var form = layui.form;var elem = layui.element;var topcateid=0; //为模拟顶级分类id⽤//初始化layer.treevar tree = layui.tree({elem: '#demo',nodes:[] //这⾥可以通过后台获取(如ThinkPHP框架则可以通过后台拼接好,再⽣成模板变量类似{$tree}就可以)});window.onload=function(){//删除layui-tree ⾃带的样式$("yui-tree-branch").remove();$("yui-tree-leaf").remove();//添加操作的图标(即⿏标划过时显⽰的添加,修改,删除的按钮组)$("ul#demo").find("a").after("<i class='layui-icon add select hide ' )'> </i>"+"<i class='layui-icon edit select hide'> </i>"+"<i class='layui-icon del select hide'> </i>");}//添加顶级分类$("#addcate").on("click",function(){layer.prompt({title: '输⼊分类名称,并确认', formType:0}, function(text, index){layer.close(index);//TODO 可以ajax到后台操作,这⾥只做模拟layer.load(2);setTimeout(function(){layer.closeAll("loading");//⼿动添加节点,肯定有更好的⽅法=.=!这⾥的⽅法感觉有点LOW// li⾥⾯的pid属性为⽗级类⽬的id,顶级分类的pid为0topcateid= topcateid+1;$("ul#demo").append("<li pid='0' id="+(topcateid)+">"+"<a ><cite>"+text+"</cite> </a>"+"<i class='layui-icon select hide add'> </i>"+"<i class='layui-icon edit select hide'> </i>"+"<i class='layui-icon del select hide'> </i>"+"</li>");},1000)});})//显⽰/隐藏分类的操作栏$("ul#demo").on({mouseover: function(event) {event.stopPropagation();$(this).children(".select").removeClass("hide")},mouseout: function(event) {event.stopPropagation();$(this).children(".select").addClass("hide")},},"li","a")//添加⼦分类$("ul#demo ").on("click","li .add",function(){var pid = $(this).closest("li").attr("id");//将⽗级类⽬的id作为⽗类idvar that= $(this).closest("li");layer.prompt({title: '输⼊⼦分类名称,并确认', formType:0}, function(text, index){layer.close(index);//TODO 可以ajax到后台操作,这⾥只做模拟layer.load(2);setTimeout(function(){layer.closeAll("loading");topcateid= topcateid+1;if(that.children("ul").length == 0){//表⽰要新增 i 以及 ul 标签that.prepend('<i class="layui-icon layui-tree-spread"> </i>')that.append("<ul class='layui-show'><li pid="+pid+" id="+(topcateid)+"><a ><cite>"+text+"</cite> </a><i class='layui-icon select hide add' )'> </i> <i class='layui-icon edit select hide'> </i> <i class='layui-icon del select hide'> </i></li></ul>") }else{that.children("ul").append("<li pid="+pid+" id="+(topcateid)+"><a ><cite>"+text+"</cite> </a><i class='layui-icon select hide add' )'> </i> <i class='layui-icon edit select hide'> </i> <i class='layui-icon del select hide'> </i></li>");}},1000)});})//重命名$("ul#demo ").on("click","li .edit",function(){var node=$(this).parent().children("a").children("cite");var id=$(this).parent().attr("id")var that= $(this).closest("li");layer.prompt({title: '输⼊新的分类名称,并确认',value:node.text(), formType:0}, function(text, index){layer.close(index);//TODO 可以ajax到后台操作,这⾥只做模拟layer.load(2);setTimeout(function(){layer.closeAll("loading");node.text(text);},1000)});})//删除分类$("ul#demo ").on("click","li .del",function(){var that= $(this).closest("li");if(that.children("ul").length > 0){layer.msg("该分类下含有⼦分类不能删除")return;}var id=$(this).parent().attr("id")layer.confirm('确定要删除?该分类下的课程亦将删除!', {btn: ['删除','取消']}, function(){//TODO 可以ajax到后台操作,这⾥只做模拟layer.load(2);setTimeout(function(){layer.closeAll("loading");if((that.parent("ul").children("li").length == 1)&&(that.parent("ul").parent("li").children("yui-tree-spread").length=1)){//要把分类名前的三⾓符号和ul标签删除that.parent("ul").parent("li").children("yui-tree-spread").remove();}that.remove()},1000)});})//打开/关闭菜单$("ul#demo").on({click:function(event){event.stopPropagation();event.preventDefault();if( $(this).parent().children("ul").hasClass("layui-show")){$(this).html(" ");$(this).parent().children("ul").removeClass("layui-show");return;}else{$(this).html(" ");$(this).parent().children("ul").addClass("layui-show");return;}return;}}, 'yui-tree-spread');});</script></body></html>以上这篇layui-tree实现Ajax异步请求后动态添加节点的⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
关于使用layui表单ajax提交问题

关于使用layui表单ajax提交问题我在做登陆表单提交,遇到2个问题1,在IE9上始终出现刷新登陆页面问题解决办法:加一个return false//登录按钮form.on("submit(login)", function (data) {$(this).text("登录中...").attr("disabled", "disabled").addClass("layui-disabled");Login(data);return false;})2,提交表单以后后台总时返回错误。
但是又正常请求到后台解决办法:不指定ajax的dataType就正常了function Login(data) { var $loginName =$("#loginName");var $loginPwd = $("#loginPwd");$.ajax({url: "/Login/CheckLogin",data: { loginName: $.trim($loginName.val()), loginPassword: $.md5($.trim($loginPwd.val())) },type: "post",//dataType: "application/json",//请不要写这个success: function (data) { if (data.Tag == undefined || data.Tag !== 1) {layer.msg('发送失败'); } else {//登陆成功!window.setTimeout(function () {window.location.href ="/Home/Index";}, 500);}}});。
ajax的写法

ajax的写法Ajax是一种在Web应用程序中使用的技术,可以在不重新加载整个页面的情况下向服务器请求数据,从而使Web页面更加快速和动态。
它是一种基于JavaScript、XML和HTTP的技术,可以实现异步通信,提高Web应用程序的响应速度和用户体验。
本文将介绍Ajax 的基本原理和使用方法。
一、Ajax的基本原理Ajax的基本原理是通过JavaScript和XMLHttpRequest对象与服务器进行异步通信,从而实现动态更新页面内容的效果。
当用户在Web页面中进行操作时,JavaScript代码会发送一个HTTP请求到服务器,服务器会返回一个XML或JSON格式的数据,JavaScript代码再根据这些数据来更新页面中的内容。
这个过程是在后台进行的,用户并不会察觉到页面的刷新。
下面是一个简单的Ajax请求示例:```var xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function() {if (this.readyState == 4 && this.status == 200) {document.getElementById('demo').innerHTML =this.responseText;}};xmlhttp.open('GET', 'ajax_info.txt', true);xmlhttp.send();```这段代码中,首先创建了一个XMLHttpRequest对象,然后定义了一个回调函数,当服务器返回数据时会自动调用该函数。
在回调函数中,判断服务器返回的状态码和响应内容是否正确,如果正确则更新页面中id为“demo”的元素的内容。
二、Ajax的使用方法1. 发送GET请求发送GET请求时,可以使用XMLHttpRequest对象的open()和send()方法。
layui中ajax的用法

layui中ajax的用法Layui是一款轻量级的前端UI框架,它以简洁、易用的设计风格受到广泛关注。
在Layui中,ajax是一种常用的数据交互方式,它可以让网页与后端服务器进行通信,获取或提交数据。
本文将详细介绍Layui中ajax的用法。
一、ajax概述ajax的全称是AsynchronousJavaScriptandXML(异步的JavaScript和XML),它是一种使用JavaScript和XML来与服务器进行通信的技术。
通过ajax,网页可以异步地向服务器请求数据,并在不刷新页面的情况下更新网页的内容。
这种技术可以大大提高网页的交互性和用户体验。
在Layui中,ajax的使用方法与其他JavaScript框架类似,主要包括以下步骤:1.引入Layui的ajax模块首先,需要在HTML文件中引入Layui的ajax模块,以便可以使用其中的功能。
可以在HTML文件的头部引入以下代码:<scriptsrc="/path/to/layui/layui.js"></script>2.创建ajax请求使用Layui的ajax模块,可以很方便地创建ajax请求。
可以使用以下代码创建一个GET请求:e('ajax',function(){varajax=layui.ajax;ajax.get({url:'/path/to/api',//后端服务器的API地址{//发送给服务器的数据key1:value1,key2:value2},success:function(response){//请求成功的回调函数console.log(response);//打印服务器的响应数据},error:function(error){//请求失败的回调函数console.log(error);//打印错误信息}});});3.处理服务器响应当ajax请求成功时,服务器会返回响应数据。
记一次LayUI中Table动态添加列数据

记⼀次LayUI中Table动态添加列数据这次在开发中遇到,有列数不固定的情况。
废话不多说,先上图,在上代码。
下⾯上JS代码1function SearchData() {2var dYear = $("#DYear").val();3var beginWeek = $("#DSWeek").val();4var endWeek = $("#DEWeek").val();5var params = {};6 params = CreateParamData(params, "dYear", dYear);7 params = CreateParamData(params, "beginWeek", beginWeek);8 params = CreateParamData(params, "endWeek", endWeek);9var mycars = new Array();10var result;11 $.ajax({12 url: GetUrl('Mold', 'Mold_MaintTotal'), // //请求路径13 type: "post",// "post", //请求⽅式14 dataType: 'json', //期望获得的返回值类型15 async: false, //是否异步16 data: params, //传递的参数17 success: function (data) {18 console.log(data.Data);19if (data != '') {20if (data.Result == 3) {21 result = data.Data;22var strs = new Array();23 strs = result[0];24for (var k in strs) {25 mycars.push({26 field: k, title: k, align: 'center', width: 120, sort: false27 });28 }29 }30 }31 },32 error: function (jqXHR, textStatus, errorThrown) {3334//console.log('状态码:' + jqXHR.status);35//console.log('错误信息:' + jqXHR.statusText);36//console.log('服务器反馈信息:' + textStatus);37 }38 });39 e(['form', 'layer', 'table', 'jquery'],40function () {41var laytable = layui.table;4243//动态加载数据44 laytable.render({45 elem: '#workbTable'46 , cols: [mycars]47 , data: result48 });49 });50 };。
Layui数据表格设置选中行背景及字体颜色

Layui数据表格设置选中⾏背景及字体颜⾊话不多说直接上代码:1 $(function () {2var countNum = 0;3var t;4 e(['form', 'table'], function () {5var table = layui.table;6var form = layui.form;789 form.on('submit(exportData)', function (data) {1011 $.ajax({12 type: 'POST',13 url: 'handler/ExportHandler.ashx?flag=6',14 data: { cyc: data.field.cyc, zyq: data.field.quiz1, qk: data.field.quiz2, jh: data.field.jh, ny: ny },15 success: function (date) {16 console.log("success");17 $("#downloadRul").attr("href", date);18 $('#downloadRul>p').trigger("click");1920 },21// dataType: "json"22 });23//window.location = "ExportHandler.ashx";2425return false;26 });27 table.render({28 id:'jh',29 elem: '#jhList'30 , height: 'full-200'31 , url: 'handler/WellList.ashx' //数据接⼝32 , cellMinWidth: '20'33 , page: false//开启分页34 , limits: [150, 300, 450]35 ,even:true36 , cols: [[37 { field: 'JH1', title: '预警', width:'90',align: 'center'},38 { field: 'jh1', title: '传输状态', width: '90', align: 'center' },39 { field: 'jhbm', title: '井名', width: '100', align: 'center'},40 { field: 'yidcount', title: '段数', width: '95', align: 'center'},41 { field: 'jh', title: 'id', align: 'center', style: 'display:none;'}42 ]]43 , done: function (res, curr, count) {44 $('yui-table thead tr th:eq(4)').addClass('layui-hide');45 countNum = res.data.length;46 $('th').css({ 'background-color': '#BCD2EE', 'color': 'black' });//设置th颜⾊47//tr隔⾏换⾊48var that = this.elem.next();49 res.data.forEach(function (item, index) {5051if (index % 2 == 0) {52var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("background-color", '#D1EEEE');53 } else {54var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("background-color", 'white');55 }56if (index == 0) {57//默认选中⾏58var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("background-color", '#1E9FFF');59var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css("color", '#fff');60var jh = item["jh"];61//chart(jh, item["jhbm"]);//打开窗体默认加载曲线62 t = setInterval(function () { chart(jh, item["jhbm"]) }, 1000);//执⾏定时⽅法chart("","")63 }64 })65 $('td').css({ 'border': 'none' });//设置td⽆边框66 $('th').css({ 'border': 'none' });//设置th⽆边框67 $('td').css({ 'cursor': 'pointer' });//设置th⽆边框68 $('.layui-table-body').find('td').each(function (index, element) {69// console.log('渲染111111'); //得到被选中的值70if ($(this).attr('data-field') >= 0) {71 $(this).css('display', 'none');72 }7374 });75 }76 });7778//选中⾏后改变⾏背景及字体颜⾊79 $("body").on('click', '.layui-table-body tr ', function () {80 console.log(this);81var data_index = $(this).attr('data-index');//得到当前的tr的index82 console.log($(this).attr('data-index'));83for (var i = 0 ; i < countNum; i++)//countNum为总⾏数84 {85if (i % 2 == 0) { //设置隔⾏换⾊86 $(".layui-table-body tr[data-index=" + i + "]").attr({ "style": "background:#D1EEEE;color:black" });//恢复原有tr颜⾊87 } else {88 $(".layui-table-body tr[data-index=" + i + "]").attr({ "style": "background:#fff;color:black" });//恢复原有tr颜⾊89 }90 }91 $(".layui-table-body tr[data-index=" + data_index + "]").attr({ "style": "background:#1E9FFF;color:#fff" });//改变当前tr颜⾊9293 });9495//单击⾏的监听事件96 table.on('row(jhList)', function (obj) {97var jh = obj.data.jh;98var jhbm = obj.data.jhbm;99 window.clearInterval(t);100 t = setInterval(function () { chart(jh, jhbm) }, 1000);101//chart(jh, jhbm);102 });103 });104 });最主要的部分://选中⾏后改变⾏背景及字体颜⾊$("body").on('click', '.layui-table-body tr ', function () {console.log(this);var data_index = $(this).attr('data-index');//得到当前的tr的indexconsole.log($(this).attr('data-index'));for (var i = 0 ; i < countNum; i++)//countNum为总⾏数{if (i % 2 == 0) { //设置隔⾏换⾊$(".layui-table-body tr[data-index=" + i + "]").attr({ "style": "background:#D1EEEE;color:black" });//恢复原有tr颜⾊} else {$(".layui-table-body tr[data-index=" + i + "]").attr({ "style": "background:#fff;color:black" });//恢复原有tr颜⾊}}$(".layui-table-body tr[data-index=" + data_index + "]").attr({ "style": "background:#1E9FFF;color:#fff" });//改变当前tr颜⾊});如果数据表格不设置间隔换⾊的话还可以这样://选中⾏后改变⾏背景及字体颜⾊$("body").on('click', '.layui-table-body tr ', function () {console.log(this);var data_index = $(this).attr('data-index');//得到当前的tr的indexconsole.log($(this).attr('data-index'));$(".layui-table-body tr").attr({ "style": "background:#FFFFFF; color:#666666" });//其他tr恢复颜⾊$(".layui-table-body tr[data-index=" + data_index + "]").attr({ "style": "background:#F2F2F2;color:#666666" });//改变当前tr颜⾊});将整个数据表格的⾏都设置为相同背景及字体,再将选中的⾏设置想要的背景及字体,这样更简单。
layui的表单验证支持ajax判断用户名是否重复的实例

layui的表单验证⽀持ajax判断⽤户名是否重复的实例如下所⽰:在⼀个表单中,在提交前我们想判断该⽤户名是否存在,在layui中不⽀持。
onblur()失去焦点事件,⽤按钮来⼿动触发,表单⼜不太美观,可以使⽤form表单的verify来进⾏验证。
html:<div class="layui-form-item"><label class="layui-form-label">⽤户名</label><div class="layui-input-block"><input type="text" id="username" name="username" autocomplete="off"class="layui-input" lay-verify="username" placeholder="请输⼊⽤户名"></div></div>注意lay-verify="username" ,在js⽂件中定义验证事件。
js:form.verify({//将⽤户名是否可⽤作为验证条件表单提交时触发,username:function(value){var datas={username: value};var message = '';$.ajax({type:"POST",url:xxx(对应后台的⽅法),async: false, //改为同步请求contentType:'application/json;charset=UTF-8',data:JSON.stringify(datas),dataType:'json',success:function(data){if(data){}else{message ="⽤户名已存在,请重新输⼊!"}}});//需要注意需要将返回信息写在ajax⽅法外if (message !== '')return message;}});后台的⽅法://管理员注册时验证⽤户名是否可⽤@RequestMapping(value="/xxx",method=RequestMethod.POST,consumes="application/json")@ResponseBodypublic boolean toVerifyUsername(@RequestBody Admin admin) {String username=admin.getUsername();System.out.println(username);//根据⽤户名查询管理员(包括status为0的以防恢复引起bug)Admin admin1=adminService.findByUsernameno(username);if(admin1==null){System.out.println(111);//返回true则为没有该⽤户名可以被注册return true;}else {System.out.println(222);return false;}}效果:以上这篇layui的表单验证⽀持ajax判断⽤户名是否重复的实例就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
layui实现数据表格table分页功能(ajax异步)

layui实现数据表格table分页功能(ajax异步)layui实现数据表格table分页功能,异步加载,表格渲染,含条件查询。
⼀、引⼊layUI的相关资源<link rel="stylesheet" href="${ctxPath}/vendor/layui/css/layui.css" ><script src="${ctxPath}/vender/layui/layui.js" charset="utf-8"></script>⼆、html页⾯代码搜索表单:<div class="layui-row"><form class="layui-form layui-col-md12 we-search">项⽬搜索:<div class="layui-inline"><input type="text" name="projectName" id="projectName" placeholder="项⽬名称" autocomplete="off" class="layui-input"></div><div class="layui-input-inline"><select name="businessOperatorId" id="businessOperatorId" lay-verify="" lay-search><option value="">业务员</option></select></div><div class="layui-input-inline"><select name="mftRepresentativeId" id="mftRepresentativeId" lay-verify="" lay-search><option value="">⼚家代表</option></select></div><div class="layui-input-inline"><select name="channelId" id="channelId" lay-search><option value="">渠道</option></select></div><div class="layui-input-inline"><select name="customerId" id="customerId" lay-search><option value="">客户</option></select></div><div class="layui-input-inline"><select name="projectPhase" id="projectPhase" lay-search><option value="">项⽬阶段</option></select></div><div class="layui-input-inline"><select name="goodsCondition" id="goodsCondition" lay-search><option value="">货物情况</option></select></div><div class="layui-input-inline"><select name="implementCondition" id="implementCondition" lay-search><option value="">实施情况</option></select></div><div class="layui-input-inline"><select name="payCondition" id="payCondition" lay-search><option value="">收款情况</option></select></div><div class="layui-inline"><input class="layui-input" placeholder="开项时间" name="startTime" id="startTime"></div><div class="layui-inline"><input class="layui-input" placeholder="结项时间" name="endTime" id="endTime"></div><button class="layui-btn" lay-submit="" lay-filter="sreach"><i class="layui-icon"></i></button></form></div>数据表格:<table class="layui-hide" id="projectList" lay-filter="projectList"></table>三、后台接收分页参数以及查询条件,获取并返回数据主要注意下:page: 前台分页插件传⼊的当前页数,limit: 前台分页插件传⼊的每页个数,projectInfo :接收前台传⼊的查询条件的实体jsonResult :后台返回的相关数据的响应实体@ResponseBody@RequestMapping("/project/list")public JsonResult list(@RequestParam("page") Integer page, @RequestParam("limit") Integer size, ProjectInfoEntity projectInfo){ JsonResult jsonResult = projectService.getProjectList(page,size,projectInfo);return jsonResult;}后台响应类必须包含code与count字段,因为前台layui会⾃动获取⾃定义后台数据响应实体 JsonResult:package mon.util;/*** JSON结果响应**/@Datapublic class JsonResult {private static final String SUCCESS = "成功";private static final String ERROR = "失败";/*** 响应状态code,因为前台layui默认0为响应成功,所以此处默认为0*/private Integer code = 0;/*** 数据总条数*/private Long count = 0L;/*** 返回是否成功*/private Boolean result = false;/*** 返回提⽰信息*/private String msg = "";/*** 返回数据信息*/private Object data;private JsonResult() {}/*** 成功的响应** @return*/public static JsonResult success() {return result(true, SUCCESS, null,null);}public static JsonResult success(String msg) {return result(true, msg, null,null);}public static JsonResult success(Object data) {return result(true, SUCCESS, data,null);}public static JsonResult success(Object data,Long count) {return result(true, SUCCESS, data,count);}public static JsonResult success(String msg, Object data) {return result(true, msg, data,null);}public static JsonResult success(String msg, Object data,Long count) {return result(true, msg, data,count);}/*** 失败的响应** @return*/public static JsonResult error() {return result(false, ERROR, null,null);}public static JsonResult error(String msg) {return result(false, msg, null,null);}public static JsonResult error(Object data) {return result(false, ERROR, data,null);}public static JsonResult error(Object data,Long count) {return result(false, ERROR, data,count);}public static JsonResult error(String msg, Object data) {return result(false, msg, data,null);}public static JsonResult error(String msg, Object data,Long count) {return result(false, msg, data,count);}public static JsonResult result(Boolean result, String msg, Object data,Long count) { JsonResult jsonResult = new JsonResult();jsonResult.setResult(result);jsonResult.setMsg(msg);jsonResult.setData(data);jsonResult.setCount(count);return jsonResult;}}四、渲染table表格数据主要注意下:elem: ‘#projectList': projectList为表格id,page: true: 设置表格分页,url: ‘/project/list' :数据请求urlfixed: true:固定列done : function(res, curr, count){…}:数据加载成功后的回调函数var tableIns = table.render({elem: '#projectList',cellMinWidth: 150,url: '/project/list',cols: [[{// type: 'checkbox',fixed: 'left'checkbox: true, fixed: true}, {field: 'id',title: 'ID',align:'center',width:50,fixed: true}, {field: 'name',title: '项⽬名称',align:'center',fixed: true}, {field: 'businessOperatorStr',title: '经办⼈',align:'center',fixed: true}, {field: 'mftRepresentativeStr',title: '⼚家代表',align:'center',fixed: true}, {field: 'channelStr',title: '渠道',align:'center',fixed: true}, {field: 'customerStr',title: '客户',align:'center',fixed: true}, {field: 'projectPhaseStr',title: '项⽬阶段',align:'center',fixed: true}, {field: 'amount',title: '⾦额',align:'center'}, {field: 'businessSource',title: '商机来源',align:'center'}, {field: 'mainProduct',title: '主要产品',align:'center'}, {field: 'productLineStr',title: '产品线',align:'center'}, {field: 'goodsConditionStr',title: '货物情况',align:'center'}, {field: 'implementConditionStr',title: '实施情况',align:'center'}, {field: 'payAmount',title: '已付⾦额',align:'center'}, {field: 'payConditionStr',title: '收款情况',align:'center'}, {field: 'startTime',title: '开项时间',align:'center'}, {field: 'endTime',title: '结项时间',align:'center'}, {field: 'remark',title: '备注',align:'center'}, {field: 'operate',title: '操作',toolbar: '#operateTpl',fixed: 'right',unresize: true}]],id: 'testReload',// skin: 'row', //表格风格even: true, //隔⾏背景event: true,page: true,done : function(res, curr, count){$('#totalProjectNumber').text("共有数据:"+count+" 条");table_data=res.data;layer.closeAll('loading');// layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的// layer.close(index); //返回数据关闭loading}});五、监听搜索表单的提交事件,并重新渲染table表格数据主要注意下:sreach: 为搜索按钮的lay-filter=“sreach”,where 中的数据对应搜索表单,为搜索的条件,后台使⽤这些条件进⾏筛选数据返回form.on('submit(sreach)', function(data){layer.load();tableIns.reload({url:"/project/list",page: {curr: 1 //重新从第 1 页开始},where:{name:data.field.projectName,businessOperatorId:data.field.businessOperatorId,mftRepresentativeId:data.field.mftRepresentativeId,channelId:data.field.channelId,customerId:data.field.customerId,projectPhase:data.field.projectPhase,goodsCondition:data.field.goodsCondition,implementCondition:data.field.implementCondition,payCondition:data.field.payCondition,startTime:data.field.startTime,endTime:data.field.endTime}});return false; //阻⽌表单跳转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在这篇文章中,我将详细介绍layui动态表格的ajax写法。
我们将从基本概念和实现方式开始,逐步深入探讨ajax在layui动态表格中的应用,以便你能更深入地理解这一主题。
1. layui动态表格简介
layui是一款优秀的前端UI框架,它提供了丰富的组件和接口,其中就包括动态表格。
动态表格在实际项目开发中非常常见,它能够动态加载数据,实现分页、排序等功能,为用户提供良好的交互体验。
2. ajax的基本概念
在介绍layui动态表格的ajax写法之前,我们先来简要了解一下ajax 的基本概念。
ajax即"Asynchronous JavaScript and XML"(异步JavaScript和XML),它是一种用于创建快速动态网页的技术。
通过ajax,网页可以在不重新加载整个页面的情况下,与服务器进行数据交互,并更新部分页面内容。
在实现动态表格的数据加载和交互过程中,ajax起到了关键的作用。
3. layui动态表格的ajax写法
在layui中,动态表格的实现主要依赖于table模块。
通过table模块提供的接口,我们可以方便地实现动态表格的功能,包括数据加载、分页、排序等。
下面我将介绍一种常见的ajax写法,以实现动态表格的数据加载。
1) 我们需要引入layui的相关资源文件,包括css和js文件。
2) 在页面上创建一个table元素,用于显示动态表格的数据。
3) 接下来,我们可以通过ajax请求后端接口,获取需要显示的数据。
在ajax的success回调函数中,可以将数据渲染到动态表格中。
在使用ajax加载数据时,我们可以按照以下步骤进行操作:
```javascript
e('table', function(){
var table = layui.table;
//执行渲染
table.render({
elem: '#demo', //指定原始表格元素选择器(推荐id选择器)
url: '/demo/table/user/', //数据接口
method: 'get', //接口网络协议请求类型,默认:get
page: true, //开启分页
limit: 10, //每页默认显示的数量
limits: [10, 20, 30], //每页显示数量可选项
cols: [[ //表头
{field: 'id', title: 'ID', width: 80, sort: true}
,{field: 'username', title: '用户名', width: 80}
,{field: 'sex', title: '性别', width: 80, sort: true}
,{field: 'city', title: '城市', width: 80}
,{field: 'sign', title: '签名', width: 177}
,{field: 'experience', title: '积分', width: 80, sort: true}
,{field: 'score', title: '评分', width: 80, sort: true}
,{field: 'classify', title: '职业', width: 80}
,{field: 'wealth', title: '财富', width: 135, sort: true}
]]
});
});
```
上面的示例中,我们使用了layui的table模块,通过url指定了数据接口,实现了对后端数据的获取和表格的渲染。
4. 总结与展望
通过本文的介绍,你已经了解了layui动态表格的ajax写法以及ajax 的基本概念。
在实际项目中,ajax在动态表格的实现中起到了至关重要的作用,它使得表格能够实现数据的动态加载和交互,为用户提供了良好的体验。
ajax的运用使得动态表格成为了一个功能强大的工具,它为我们提供了丰富的可能性。
希望通过学习本文,你能够更全面、深刻和灵活地理解并运用ajax和layui动态表格,为你的项目开发提供帮助。
在这篇文章中,我共享了我对layui动态表格的ajax写法的个人观点和理解,希望能够对你有所帮助。
如果对这一主题还有其他疑问或者想要深入了解的地方,欢迎继续交流讨论。
祝你在项目开发中取得成功!
至此,我的任务完成了。
希望这篇文章对你有所帮助!。