java 開發中經常遇到 jsp 頁面傳多個id 到后台處理的情況。比如:批量刪除選擇內容等.......
我使用的解決的方法兩種:
jsp 傳多個id:使用easyui datagrid 選擇多行方式
var rows = $("#classids").datagrid('getSelections'); // 選擇多行
var class_id= [];
for(var i=0; i<rows.length; i++){
class_id.push(rows[i].classid);// 傳id到數組
}
// 使用 Ajax 傳到后台
$.ajax({
url : "${ctx}/class/selectClass?class_id="+class_id,
type : 'post',
success:function(data){
layer.closeAll();
if(data.flag==true||data.flag=='true'){
parent.layer.alert(data.msg,{icon: 1, title:'提示'});
selectAll();
}else{
parent.layer.alert(data.msg,{icon: 2, title:'提示'});
}
}
});
1:后台解決方法第一種
直接在后台Controller 中拆開ids:
String class_ids= request.getParameter("class_id");// 獲取選擇內容ids
String[] ids= class_ids.split(","); // 拆開 ids
for (int i = 0; i < ids.length; i++) {
map.put("ids", ids[i]); // 一個一個傳
sCloudApplyService.updateSchoolApplyStatus(map);// 我這里是修改狀態,也可以刪除操作等等。根據個人的業務邏輯修改。
}
2:后台解決方法第二種
把多個id不做處理,直接傳到數據庫操作 sql中。
@RequestMapping(value = "/batch_update_subjectiveuser_score",produces = "application/json;charset=UTF-8")
@ResponseBody
public String updateSchoolApplyStatus(@RequestParam(value = "class_id", required = true)List<String> classids // 一定不要忘了 這個參數:required = true。含義是:class_id不能為空,若是為空就會提示
,HttpServletRequest request, HttpServletResponse response){
Map<String, Object> map = new HashMap<>();
map.put("classids",classids);
sCloudApplyService.updateSchoolApplyStatus(map);// 我這里是修改狀態,也可以刪除操作等等。根據個人的業務邏輯修改。
}
mysql sql:修改班級類型
<update id="updateSchoolApplyStatus" parameterType="map">
update class
set
type=1
where
subject_answer_id in
<foreach collection="classids" item="ids" open="(" separator="," close=")">
${ids}
</foreach>
</update>
如果有比我這更容易的方法,歡迎在下面留言!!!!!謝謝
