결과출력 예시 : {agree1=Y,agree2=N ..}
- map배열 : https://dev-eunse.tistory.com/78
⚡ 체크박스 확인 => map으로 받기
<body> <form action="./test6.do" method="post" id="frm"> <input type="hidden" value="" name="ckck"> <label><input type="checkbox" name="agree_all" id="agree_all" onclick="check_all()">전체선택</label> <label><input type="checkbox" name="agree" value="agree0_N" onclick="ch_check()">(필수)개인회원 정보 동의함</label> <label><input type="checkbox" name="agree" value="agree1_N" onclick="ch_check()">(필수)이용약관 동의함</label> <label><input type="checkbox" name="agree" value="agree2_N" onclick="ch_check()">(선택)청소년 보호정책 동의함</label> <label><input type="checkbox" name="agree" value="agree3_N" onclick="ch_check()">(선택)제3자 정보 수집 동의</label> <br><br><input type="button" value="동의확인" onclick="agree_go()"> </form> </body> <script type="text/javascript"> var ck = 0; var all_ck = false; function check_all(){ var f; if(all_ck == false){ for(f=0; f<frm.agree.length; f++){ frm.agree[f].checked = true; frm.agree[f].value = "agree"+ f +"_Y"; } all_ck = true; }else{ for(f=0; f<frm.agree.length; f++){ frm.agree[f].checked = false; frm.agree[f].value = "agree"+ f +"_N"; } all_ck = false; } } function ch_check(){ ck = 0; var f; for(f=0; f<frm.agree.length; f++){ if(frm.agree[f].checked == true){ frm.agree[f].value = "agree"+ f +"_Y"; ck++; }else{ frm.agree[f].value = "agree"+ f +"_N"; } } if(ck == 4){ document.getElementById("agree_all").checked = true; }else{ document.getElementById("agree_all").checked = false; } } function agree_go(){ if(frm.agree[0].checked == false || frm.agree[1].checked == false){ alert("필수 체크사항을 확인해주세요"); }else{ frm.submit(); } } </script>
public class test6 extends HttpServlet { private static final long serialVersionUID = 1L; Map<String, String> agdata = null; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); this.agdata = new HashMap<String, String>(); //동일한 네임값을 사용할때 가져오는 방식 //주의 : 프론트와 네임값을 반드시 사전에 맞춰놓아야함! String agck[] = request.getParameterValues("agree"); int w=0; while(w<agck.length) { String key = agck[w].split("_")[0]; String val = agck[w].split("_")[1]; this.agdata.put(key,val); w++; } System.out.println(agdata); } }
▶ 동일한 네임값을 사용할때 가져오는 방식 확인 (주의 : 프론트와 네임값을 반드시 사전에 맞춰놓아야함! )
String agck[] = request.getParameterValues("agree");
'CLASS > SERVLET' 카테고리의 다른 글
#6-1 / 간편 회원가입⭐ (0) | 2024.06.18 |
---|---|
#5 / 🌺 MVC? / excute,statement정리 (0) | 2024.06.17 |
#4-1 / html에서 java class로 값 전달,로그인 예제 (0) | 2024.05.31 |
#3-3 / html-> html 값 전달 (0) | 2024.05.30 |
#3-2 / 암호화(security) (0) | 2024.05.30 |