티스토리 뷰

   잊을까봐 써놓는다 ㅡㅡ;


   간단하게 input 값들을 문자열, 배열로 한꺼번에 넘기는 예제다.




   먼저 HTML에서는..

1
2
3
4
<input type="hidden" id="userId" value="abcd">
<input type="checkbox" name="hobby" value="독서">
<input type="checkbox" name="hobby" value="운동">
<input type="checkbox" name="hobby" value="전시관람">

   이렇게 해주고,



   javascript단에서 데이터를 불러와서 ajax로 넘긴다,,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function ajaxExample(){
    // 사용자 ID를 갖고 온다.
    var userId = $("#userId").val();
 
    // name이 같은 체크박스의 값들을 배열에 담는다.
    var checkboxValues = [];
    $("input[name='hobby']:checked").each(function(i) {
        checkboxValues.push($(this).val());
    });
     
    // 사용자 ID(문자열)와 체크박스 값들(배열)을 name/value 형태로 담는다.
    var allData = { "userId": userId, "checkArray": checkboxValues };
     
    $.ajax({
        url:"goUrl.do",
        type:'GET',
        data: allData,
        success:function(data){
            alert("완료!");
            window.opener.location.reload();
            self.close();
        },
        error:function(jqXHR, textStatus, errorThrown){
            alert("에러 발생~~ \n" + textStatus + " : " + errorThrown);
            self.close();
        }
    });
}




   Spring Controller단에서 데이터를 받을 땐,

   배열은 배열로, 스트링은 스트링으로 받으면 된다.

@RequestParam(value="checkArray[]") List<string> arrayParams, @RequestParam(value="userId") String userId

   만약 @RequestParam HashMap param으로 받을 경우, 배열은 첫번째 값만 넘어간다. 그러니 배열은 반드시 List로.




댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함