Where The Streets Have No Name

CHECKBOX로 여러개 선택한 값 받기 본문

Developement/Java

CHECKBOX로 여러개 선택한 값 받기

highheat 2006. 5. 29. 10:32

CHECKBOX로 여러개 선택한 값 받기

우리는 살아가면서 여러가지 선택의 기로에 놓이게 된다. 이걸 선택할지 저걸 선택할지... ㅋㅋㅋ
자 우선 다음을 살펴보도록 합시다.

문제 1. 당신이 가장 좋아하는 것을 고르시오(복수개 선택가능) <- 고복수는 양동근... ㅋㅋㅋ

남자 여자 돈 술 담배
오락 웹서핑 디자인 농구 축구

 

위의 내용은 다음과 같습니다.

<form name="form1" method="post" action="/exam/checkbox.jsp">
<p>
<input type="checkbox" name="item" value="1">남자
<input type="checkbox" name="item" value="2">여자
<input type="checkbox" name="item" value="3">돈
<input type="checkbox" name="item" value="4">술
<input type="checkbox" name="item" value="5">담배<br>
<input type="checkbox" name="item" value="6">오락
<input type="checkbox" name="item" value="7">웹서핑
<input type="checkbox" name="item" value="8">디자인
<input type="checkbox" name="item" value="9">농구
<input type="checkbox" name="item" value="10">축구</p>
<p><input type="submit" value="확인"> <input type="reset" value="초기화"></p>
</form>

자 유심히 보면 chckbox의 name이 item으로 통일된 것을 볼 수 있죠.
배열로 넘기겠다는 의미입니다. 확인을 눌러볼까요? 선택된 값의 번호가 보이시죠?
뒷단소스입니다.

<%@ page contentType="text/html; charset=euc-kr"%>
<%
String[] items = request.getParameterValues("item");
try{
   // 선택한 값이 없으면 back.
   if(items == null || items.length <= 0){
     out.println("<script>alert(''선택한 항목이 없습니다.'');history.back();</script>");
     return;
   }
   for(int i=0; i<items.length; i++){
     out.println("선택한 값 : " + items[i] + "<br>");
   }
   out.println("<a href=''javascript:history.back();''>뒤로</a>");
}catch(Exception e){
   System.out.println(e);
}
%>

여기서 핵심은 request.getParameter()가 아닌 request.getParameterValues()입니다.
그래서 배열로 item값을 받았고 그리고 배열크기까지 for문을 돌려서 값을 받은 것입니다.