본문 바로가기

IT/JQUERY

ajax로 체크된 체크박스 배열(list) + 객체(object)로 값 넘기기

반응형

ajax로 체크박스에 체크된 값 것들중 필요한값을 객체에 넣어서 넘기고 싶었다.

값을 세팅하고 json 형태로 ajax통신을 이용해서 값을 넘기는데 까지는 별 문제가 없었는데...

문제는 java controller 단에서 값을 받는데 계속 오류가나서 멘붕이 왔다.

var testArray = [];
  
  $("input:checkbox[name='testChk[]']").each(function(){
 	 if(this.checked) { //체크된 항목
  		var objData = new Object();
  		objData.test1 = this.dataset.test1; //data에서 원하는 값을 가져온다.
  		objData.test2 = this.value; // value값을 가져온다.
  		testArray.push(objData);
  	 }
  });
  console.log(testArray)
  
  var param = {
			"testArray" : JSON.stringify(testArray)
		};
		
		$.ajax({
			url : url,
			data : param,
			type : "POST",
			dataType : "json",
			async : true,
//			traditional:true,
			error : function(xhr, txt) {
				AjaxUtil.error(xhr);
			},
			success : function(jsonData) {
				console.log("success");
				if (jsonData.result == 1) {
					jAlert("성공");	
				} else if (jsonData.result == -1) {
					jAlert("오류가 발생하였습니다.");
				}
			}
		});

이런식으로 사용 해본적은 없어서 구글링하면서 이방법 저방법 다 해봤는데 생각처럼 잘 되지 않아서... 결국 그냥 각각 배열에 담아서 처리를 해뒀다.

분명 또 이런식으로 사용해야할 상황이 올텐데 해결방법이 궁금...

//시도 1
 @ResponseBody
    public String testJson(HttpServletRequest request, HttpServletResponse response, HttpSession session,
    		@RequestParam("testArray") String testArray) throws Exception {


JSONArray getTestList = JSONArray.fromObject(testArray);
  for(Object js : getTestList) {
 	 JSONObject getAddrObject = (JSONObject)js;
 	 String test1 = (String)getAddrObject.get("test1");
  }

이런식으로 했었는도 해봤었는데 계속 오류..

오류코드는 캡쳐를 못해뒀다...

해결방법이 매우궁금하다!

728x90
반응형