1 <script> 2 3 //公共js页 4 //修改的iframe 接列表传来的值, 封装好直接调用, 具体是啥意思我也不知道 —_—|| 5 function GetQueryString(name) { 6 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 7 var r = window.location.search.substr(1).match(reg); 8 if(r != null) return unescape(r[2]); 9 return null; 10 } 11 12 //list:数组 13 //key:主键名称 14 //val:组件的值 封装了一个方法, 方便在edit里面取 id, 不用每次都for循环 15 function getListItemByKey(list, key, val) { 16 if(list != null) { 17 for(var i = 0; i < list.length; i++) { 18 if(list[i][key] == val) { 19 return list[i]; 20 } 21 } 22 } 23 } 24 25 // list页 26 function edit(id) { 27 let obj = getListItemByKey(list, "id", id); 28 // let title = getListItemByKey(list,"title",title); 29 // 传输的是中文的话,传到下一页会乱码,须要encodeURI();进行转码 30 // 两次转码,以后到update页再解码, 因为是传id 在下一页重查, 因此没传, 并且传输大量中文的话容易出现问题 31 // let title = encodeURI(encodeURI(obj.title)); 32 // console.log(title) 33 let modelName = '修改信息'; 34 // var timestamp = (new Date()).getTime()/1000; //因为浏览器相同地址会默认有缓存,加上时间戳变会认为打开的不是同一个网址, 不过layui默认iframe 打开的 35 // 不是同一个网址, 因此时间戳没用上, 便注释掉了 36 var url = '../case_update/yj.html?id=' + id; //传值将id 传到下一页,在下一页从新查询一遍须要修改的信息,显示在页面上 37 x_admin_show(modelName, url); // layui自带的方法,用来跳转到哪一页 38 } 39 40 // update 页 41 // 调用封装好的方法, 得到上一页欻传来的id 42 var id = GetQueryString("id"); 43 44 $.ajax({ 45 type: 'post', 46 url: url + '', 47 dataType: "json", 48 async: true, 49 data: { 50 id: id 51 }, 52 success: function(data) { 53 // 因为修改是用form表单提交, 因此要把获取的值放进form表单中 54 $('input[name="case_id"]').val(data.obj[0].id); // 放入的属性是name="" 55 $('#title').val(data.obj[0].title); // 放入的属性是id="" 56 } 57 }); 58 59 //修改图片 60 var photoes = []; 61 62 $("#photo").change(function() { 63 var file = this.files[0]; 64 photoes.push(file); 65 var filereader = new FileReader(); 66 filereader.onload = function(e) { 67 var base64 = e.target.result; //转成base64 显示在页面上 68 $("#photos").append("<img class=\"appedphoto\" src=\"" + base64 + "\" />"); 69 } 70 filereader.readAsDataURL(file); 71 }); 72 73 $("#upload").click(function() { 74 75 if (photoes.length == 0) { 76 update_case(); 77 return; 78 } 79 80 var formData = new FormData(document.getElementById("ff")); // ff为表单的id 81 82 for (var i = 0; i < photoes.length; i++) { 83 formData.append("CaseImages", photoes[i]); // CaseImages 后台图片对应的字段 84 } 85 86 $.ajax({ 87 type: "post", 88 url: url + "add", 89 data: formData, //formData 里面啥都有 90 dataType: "json", 91 contentType: false, 92 processData: false, 93 success: function () { 94 var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 95 parent.location.reload(); //刷新列表页, 也就是list页, 是update页的父级 96 parent.layer.close(index); //找到当前窗口,关闭当前窗口 97 } 98 }); 99 }); 100 101 function update_case() { 102 $.post(url + "update_info.xsh", { 103 id: GetQueryString("id"), 104 case_num: $("#case_num").val(), 105 title: $("#title").val(), 106 }, 107 function() { 108 var index = parent.layer.getFrameIndex(window.name); //获取窗口索引 109 parent.location.reload(); //刷新列表页, 也就是list页, 是update页的父级 110 parent.layer.close(index); //找到当前窗口,关闭当前窗口 111 }) 112 } 113 114 115 //修改时删除已经存好的图片 116 //得到删除的id 117 $(document).on('click', '.del-btn', function() { 118 let id = "'" + $(this).attr('alt') + "'"; 119 let index = $(this).parent().parent().index(); 120 layer.confirm('确认要删除吗?', function() { 121 //删除 122 $.ajax({ 123 type: 'post', 124 url: url + 'delete.xsh', 125 dataType: "json", 126 async: true, 127 data: { 128 id: id 129 }, 130 success() { 131 $('tbody tr:eq(' + index + ')').remove(); 132 layer.msg('删除成功', { 133 icon: 1 134 }); 135 } 136 }); 137 }); 138 }) 139 140 </script>