随笔:ajax传递数组,layui父子页面传值,下来菜单赋值,父页面
发布时间:2020-12-16 03:01:04 所属栏目:百科 来源:网络整理
导读:一.Ajax向后台传递数组问题:(声明前台我使用的layui框架) 例:我们要多前台一个数据表格进行批量删除操作,我们通过复选框选中数据id,将id存入一个数组中,然后利用ajax传递给后台,完成批量删除,再过程中我们需要加上traditional : true 代码如下: fu
一.Ajax向后台传递数组问题:(声明前台我使用的layui框架)
例:我们要多前台一个数据表格进行批量删除操作,我们通过复选框选中数据id,将id存入一个数组中,然后利用ajax传递给后台,完成批量删除,再过程中我们需要加上traditional : true 代码如下: function batchDel() { var datas; var ids = new Array();// 声明数组 layui.use(‘table‘,function() { var table = layui.table; var checkStatus = table.checkStatus(‘encryptionTable‘);// 声明复选框 datas = checkStatus.data; for ( var i in datas) { ids[i] = datas[i].id;// 得到复选框的值 } if (ids.length != 0) { $.ajax({ url : "/admin/encryption/delete.json",type : "post",traditional : true,// 这里设置为true,不然后台接收到的参数会带上[],导致数据无法正常接收 data : { "ids" : ids },success : function(data) { alert("删除成功"); table.reload("encryptionTable"); layer.close(index); } }); } else { layer.open({ title : ‘操作提示‘,content : ‘请至少选择一行数据要删除数据..‘ }); } }); } 二.Layui父页面给子页面传值 var id=data.id; //创建一个HTML 对象 var html = "see.html"; var url = "/admin/encryption/seeEncryption/"+html+".do?id="+id; parent.layer.open({ title: [‘文件系统资源明细‘,‘font-size:16px;background-color:#5FB878‘],type: 2,resize: false,// 禁止拉伸 move: true,maxmin: false,// 开启最大化最小化按钮 skin: ‘layui-layer-rim‘,//样式类名 area: [‘740px‘,‘300px‘],content:url,btn : [ "确定","取消" ],skin : ‘layui-layer-molv‘,yes : function(index,layero) { parent.layer.close(index) },end : function() { //iframe销毁后触发的函数 } }); 子页面中获取id,利用ajax传递给后台在获取后台返回的数据,然后根据id赋值给input表单中 layui.use(‘table‘,function() { var id = ${parameter.id}; //从父页面取到传过来的id,用ajax请求后台进行操作 $.ajax({ url : "/admin/encryption/see.json",dataType : "json",data : { "id" :id },success : function(data) { if(data!=null){ $("#edName").val(data.data.edName); $("#edIdentification").val(data.data.edIdentification); $("#edPlain").val(data.data.edPlain); $("#edAlgorithm").val(data.data.edAlgorithm); $("#edSecretKey").val(data.data.edSecretKey); }else{ alert("查询数据为空..."); } } }); }); 三.父页面如何获取子页面的数据 var edName = parent.layer.getChildFrame(‘#edName‘,index).val(); var edPlain = parent.layer.getChildFrame(‘#edPlain‘,index).val(); var edAlgorithm = parent.layer.getChildFrame(‘#edAlgorithm option:selected‘,index).val();//获取下拉菜单选中的值 var edSecretKey = parent.layer.getChildFrame(‘#edSecretKey‘,index).val(); var encryptionOutput = parent.layer.getChildFrame(‘#encryptionOutput input:checked‘,index).val(); var encryptionInput = parent.layer.getChildFrame(‘#encryptionInput input:checked‘,index).val();//获取选中按钮的值 四.Layui中表格数据的替换 { field : ‘edStatus‘,title : ‘状态‘,toolbar :‘#statusDemo‘,width : 110,fixed : ‘left‘ } <script type="text/html" id="statusDemo"> {{#if (d.edStatus == 0) { }} <span style="color:#FF5722;">已发布</span> {{# }else if(d.edStatus == 1){ }} <span>已停用</span> {{# } }} </script> 五.如何拿到后台数据将其动态赋值给前台select下来菜单中 initSelect:function(){ $.ajax({ url : ‘/admin/configure/servnames.json‘,dataType : ‘json‘,type : ‘POST‘,success : function(data) { $("#serviceName").append(‘<option value="">请选择服务</option>‘); $.each(data.data,function(index,item) { $("#serviceName").append(‘<option value="‘+item.serviceName+‘">‘ + item.serviceName + ‘</option>‘); }); form.render(‘select‘);//下拉菜单渲染 把内容加载进去 } }); } 六.Layui中子页面的子页面怎么弹出 parent.layer.open({ title : ‘算法方案添加提示‘,content : ‘请将方案数据新增成功,是否继续添加?‘ }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |