记录今天遇见的问题
情景:导出列表时,用户想记录上次的选中的列状态;
处理流程:
创建中间表temp,字段JYZD记录选中的列名称
jsp页面代码
<td>姓名</td>
<td><input type="checkbox" name="名称" value="mc" class="MC"/>
</td>
<td>性别</td>
<td>
<input type="checkbox" name="性别" mc="sex" value="sex" class="SEX"/>
</td>
JS代码
var checkbox = $("#myform").find("[type='checkbox']").filter(":checked");
获取页面上每个被选中的值
var CheckStr = "";
checkbox.each(function(){
CheckStr += $(this).attr("class")+",";//获取选中的class的name值
})
定义数组,获取所有选中的class值
$.ajax({
type:"post",
data:"CheckStr="+CheckStr,
url:"${ctx}/test/doInsert"
});
通过ajax传到后台,编写方法
/** controller
* 插入导出时选中的字段
* @throws ParseException
*/
@RequestMapping(value="/doInsert",produces = "text/html;charset=UTF-8")
@ResponseBody
public String doInsert() throws ParseException{
PageData pd = this.getPageData();
String CheckStr = pd.getString("CheckStr");
boolean result = Service.doInsert(CheckStr);
if(result){
return "{\"success\":\"true\",\"msg\":\"插入成功!\"}";
}else{
return "{\"success\":\"false\",\"msg\":\"插入失败!\"}";
}
}
/** Service
*/
public boolean doInsert(String CheckStr){
return Dao.doInsert(CheckStr);
}
/** Dao
* @return
*/
public boolean doInsert(String CheckStr,String saasdm){
String[] checkname=CheckStr.split(",");
List<String> sqllist = new ArrayList<>();
for(int i=1;i<checkname.length;i++){
String sql = "insert into temp ( jyzd) values('"+checkname[i]+"')";
sqllist.add(sql);
}
return db.batchUpdate(sqllist);
}