체크박스를 여러개 선택해서 값을 넘길려고 할 때 아래와 같이 box[ ] 배열로 만들어서 바로 서버로 넘겨도 된다.
서버에서 반복문으로 푸는 방법과 스크립트에서 반복문으로 풀어서 서버로 넘기는 방법이 있다.
아래와 같은 체크박스 태그가 반복문을 통해 여러개 있을 경우 태그명을 class를 이용해야 한다.(id는 유일한 이름)
<input type="checkbox" name="box[]" value="a" class="checkSelect">
<input type="checkbox" name="box[]" value="b" class="checkSelect">
<input type="checkbox" name="box[]" value="c" class="checkSelect">
<input type="checkbox" name="box[]" value="d" class="checkSelect">
<input type="checkbox" name="box[]" value="e" class="checkSelect">
box[0].val() => a
box[1].val() => b
box[2].val() => c
…
이러한 형태로 되어있는 것을
아래 코드를 통해 id=array라는 태그의 value 값으로 a,b,c,d,e 의 형태로 넣는다.
<script> var send_array = Array(); var send_cnt = 0; var chkbox = $(".checkSelect"); for(i=0;i<chkbox.length;i++) { if (chkbox[i].checked == true){ send_array[send_cnt] = chkbox[i].value; send_cnt++; } } $("#array").val(send_array); </script>
send_array라는 배열 변수를 선언하고.
배열의 index를 넣을 send_cnt와 체크박스의 이름인 .checkSelect를 chkbox라는 변수로 선언을 한다.
for문을 이용해서
box[0].val() => a
box[1].val() => b
box[2].val() => c 이러한 형태의 값들을 하나씩 send_array[i]에 넣는다.
send_array를 출력해보면 a,b,c,d,e 와 같은 형태로 , 로 구분하여 저장된다.
그걸 value 값에 넣어 서버로 보내면 서버에서 반복문을 실행하지 않아도 여러개의 값들을 쓸 수 있다.
*a,b,c,d,e의 형태로 넘어간 값들은 SELECT, DELETE 문을 사용할때 wehre user_name in ('send_array') 와 같은 형태로 사용할 수 있다.