先把数组存入数组(直接放代码不细说,重点是我这数组怎么来的)
let oid = document.getElementsByName("checkbox_name");
$('.submit_btn').on('click', function () {
let ids = "";
let userids = "";
let titles = "";
let n = 0;
let a = 0;
let b = 0;
for (let i = 0; i < oid.length; i++) {
if (oid[i].checked == true) {//选中为true
const row = $(oid[i]).parent("td").parent("tr");//获取选中行
const userid = row.find("[name='userid']").val();//获取userid
const title = row.find("[name='title']").val();//获取title
let id = oid[i].value;
if (n == 0) {
ids += id;
} else {
ids += "," + id;
}
if (a == 0) {
userids += userid;
} else {
userids += "," + userid;
}
if (b == 0) {
titles += title;
} else {
titles += "," + title;
}
b++;
n++;
a++;
}
}
// const row = $(oid).parent("td").parent("tr");//获取选中行
// const userid = row.find("[name='userid']").val();//获取userid
// alert(userids + "userid");
if (!ids) {
layer.alert('选中之后再点击确定啦');
} else {
let data = {
ids: ids,
userids: userids,
titles: titles,
label: $('input:radio:checked').val()
};
$.ajax({
type: "Post",
url: "insert_discover",
// contentType: "charset=utf-8",
data: data,
dataType: "json",
success: function (result) {
if (result.resultCode == 200) {
layer.msg('操作成功!');
}
if (result.resultCode == 404) {
layer.msg('操作失败!');
}
setTimeout(function () {
window.location.reload();//刷新当前页面.
}, 2000)
},
error: function (data) {
layer.alert('失败');
}
});
}
}
)
controller接受:
@RequestMapping("insert_discover")
@ResponseBody
public Map insert_discover(@RequestParam("ids") String ids, @RequestParam("userids") String userids, @RequestParam("titles") String titles, @RequestParam("label") String label, HttpSession session) {
Map<Object, Object> map = new HashMap<>();
System.out.println(ids);
List<String> fid = Arrays.asList(ids.split(","));
List<String> userid = Arrays.asList(userids.split(","));
List<String> title = Arrays.asList(titles.split(","));
List<Map> mapList = new ArrayList<>();
for (int i = 0; i < fid.size(); i++) {
Map map1 = new HashMap();
map1.put("fid", fid.get(i));
map1.put("userid", userid.get(i));
map1.put("title", title.get(i));
mapList.add(map1);
}
try {
discoverService.insert(mapList, label);
map.put("resultCode", 200);
} catch (Exception e) {
map.put("resultCode", 404);
}
List<Discover> discoverList=discoverService.selectAll();
session.setAttribute("discoverList",discoverList);
return map;
}
就是把它们转成list,然后把好几个list存入map,这个map作为参数传入xml。
service层:
public void insert(List<Map> mapList, String label) {
discoverMapper.insertDiscover(mapList,label);
}
mapper层
void insertDiscover(@Param("mapList") List<Map> mapList, @Param("label") String label);
xml
<!-- 批量插入 insertDiscover-->
<insert id="insertDiscover">
insert into discover ( fid, title,
label, userid)
values
<foreach collection="mapList" item="map" index="index" separator="," close=";">
(#{map.fid}, #{map.title}, #{label},#{map.userid})
</foreach>
</insert>
OK