알려주라주
40
2016-10-08 18:58:27
2
1004

로그인 버튼 클릭시 두개의 화면으로 분류 질문이요ㅠㅠ


로그인 할 때 user인지 agent인지 체크박스를 통해 체크한 뒤 자바스크립트에서 체크 값을 리턴받아

폼을 넘겼을 때 리턴값에 따라 화면을 다르게 처리하려 하는데 자꾸 널 값만 들어가네요...ㅠㅠㅠ도와주세요

--------로그인 화면 모달--------

<form method="post" action="sessionLoginPro.jsp" class="align_center">
<script>
function check(obj){
 var check=null;
 if(obj.user_login.checked){
  check='user';
  return check;
 }else if(obj.agent_login.checked){
  check='agent';
  return check;
 }else{
  alert('로그인 유형을 선택하세요.');
 }
}
</script>
<header>
 <ul id="topMenu">
  <% if(session.getAttribute("user_id") == null && session.getAttribute("agent_id") == null) {%>
   <li><div>
       <!-- Trigger the modal with a button -->
       <a data-toggle="modal" data-target="#myModal">로그인</a>


       <!-- Modal -->
       <div class="modal fade" id="myModal" role="dialog">
         <div class="modal-dialog modal-lg">
           <div class="modal-content">
             <div class="modal-header_kj">
               <button type="button" class="close" data-dismiss="modal">&times;</button>
               <h4 class="modal-title_kj">로그인</h4>
             </div>
             <div class="modal-body_kj">
                <p><input id="login_username" name="id" class="form-control" type="text" placeholder="아이디를 입력하세요." required ></p>
                <p><input id="login_password" name="passwd" class="form-control" type="password" placeholder="비밀번호를 입력하세요." required ></p>
             </div>
             <input type="checkbox" name="user_login" />일반 사용자 로그인
             <input type="checkbox" name="agent_login" />중개사 로그인
             <div class="login_OK_kj">
                                <input type="submit" class="btn btn-primary btn-lg btn-block" value="로그인" onclick="chk=check(this.form)"/>
                            </div>
                            <div class="login_help_kj">
                             <button id="login_lost_btn" type="button" class="btn btn-link">Lost Password?</button>
                             <button id="login_register_btn" type="button" class="btn btn-link">Register</button>
                         </div>
           </div>
         </div>
       </div>
     </div></li>

....


-------로그인버튼 클릭 후 넘기는 페이지--------

<%
LogonDBBean logon = LogonDBBean.getInstance();
AgentLogonDBBean logon2 = AgentLogonDBBean.getInstance();
String chk = request.getParameter("chk");
out.println(chk); //null값....


if(chk.equals("user")){//사용자일 때
 String user_id = request.getParameter("id");
 String user_passwd  = request.getParameter("passwd");
 int check_user= logon.userCheck(user_id,user_passwd);
 if(check_user==1){
  session.setAttribute("user_id",user_id);
  response.sendRedirect("userTemplate.jsp");
 }else if(check_user==0){%>
 <script>
   alert("비밀번호가 맞지 않습니다.");
      history.go(-1);
 </script>
 <%}else{ %>
 <script>
   alert("아이디가 맞지 않습니다..");
   history.go(-1);
 </script>
 <%}%>
<%}else if(chk.equals("agent")){ //중개사일 때
 String agent_id = request.getParameter("id");
 String agent_passwd  = request.getParameter("passwd");
   int check_agent= logon2.agentCheck(agent_id,agent_passwd);
   if(check_agent==1){
  session.setAttribute("agent_id",agent_id);
  response.sendRedirect("room.jsp");
 }else if(check_agent==0){%>
 <script>
   alert("비밀번호가 맞지 않습니다.");
      history.go(-1);
 </script>
 <%}else{ %>
 <script>
   alert("아이디가 맞지 않습니다..");
   history.go(-1);
 </script>
<%}}%>


어디를 어떻게 수정해야 할까요..ㅜㅜㅜㅜㅜ


0
0
  • 답변 2

  • gomonk
    995
    2016-10-08 20:26:14 작성 2016-10-08 20:27:50 수정됨
    <script>
    function check(obj){
     var check=null;
     if(obj.user_login.checked){
      check='user'; 
      return check;
     }else if(obj.agent_login.checked){
      check='agent'; 
      return check;
     }else{
      alert('로그인 유형을 선택하세요.');
     }
    }
    </script>

    input type=checkbox 만으로는 체크가 안됬을 경우의 값을 보내주지 못하기 때문에 

    checkbox용 input hidden을 만들어 form을 전송해야 null값이 뜨지 않습니다.

    위의 스크립트 코드를 수정하면

    <script>
    function check(obj){
     var check= obj.히든인풋 name;
     if(obj.user_login.checked){
      check.value = 'user';
     }else if(obj.agent_login.checked){
      check.value = 'agent'; 
     }else{
      alert('로그인 유형을 선택하세요.');
     }
    }
    </script>

    같이 hidden 태그에 값을 넣어주는 식으로 변경해 전송하시면 해결될겁니다.

    물론 체크가 안됐을 경우의 null을 방지하기 위해서 input hidden에도 value를 주는게 맞겠죠?


    -- 나중에 코드를 올리실 때는 에디터 탭의 '코드'를 선택해 올리시는게 가독성이 좋습니다 

    2
  • 알려주라주
    40
    2016-10-08 20:37:49

    해결했어요 감사합니다...ㅠㅠㅠㅠㅠㅠㅠㅠ

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.