CI 묻고 답하기

제목 머리가 안돌아가서 여기에다 질문해봅니다.
카테고리 CI 2, 3
글쓴이 창쓰 작성시각 2017/08/10 18:41:14
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 14310   RSS

첫번째, 입력폼을 입력하지 않고 가입하기 버튼을 누르면 폼검증 관련 에러 메세지를 경고창으로 띄운다.

두번째, 입력폼폼검증이 완벽하여 버튼을 누르면 에러메세지를 띄우지않고, 체크박스에 체크를 하지 않으면 경고창을 띄운다.

세번째, 모두 다 완료 되고 버튼을 누르면 완료 됬다는 경고창을 띄운다.

 

이렇게 짜볼려고 합니다.

(밑에 소스 코드들은 VIEW 파일 디렉토리내에서 입력하였습니다)

 

그래서,

@배강민님이 올려주셨던, 폼검증 에러메세지 경고창

 <?php
  
     if(validation_errors() !== "")
     {
         ?>
         <script language="JavaScript" type="text/javascript">
         //<!--
             alert("<?=str_replace("\n", "\\n", strip_tags(validation_errors()))?>");
         //-->
         </script>
         <?
     }
 ?>

이거와,

체크를하지않으면 경고창을 띄우는 기존에 있는 스크립트

 <script>
    function fregister_submit(f) {
        if (!f.agree1.checked) {
            alert("이용약관 및 개인정보수집 동의하셔야만 가입이 가능합니다.");
            f.agree1.focus();
            return false;
        }
        alert("가입이 완료되었습니다.")
        return true;
    }
</script>

 

이 두가지를 조인하고자 합니다..

그래서 조인하는 도중에,먼저 @배강민님이 올려주신 경고창띄우는 소스를 작성하고, 밑에 스크립트를 넣었더니..

<?php
  
     if(validation_errors() !== "")
     {
         ?>
         <script language="JavaScript" type="text/javascript">
         //<!--
             alert("<?=str_replace("\n", "\\n", strip_tags(validation_errors()))?>");
         //-->
         </script>
         <?
     }
 ?>
 <script>
    function fregister_submit(f) {
        if (!f.agree1.checked) {
            alert("이용약관 및 개인정보수집 동의하셔야만 가입이 가능합니다..");
            f.agree1.focus();
            return false;
        }
        alert("가입이 완료되었습니다.")
        return true;
    }
</script>

 

이런 형식으로 넣었더니, 밑에 스크립트가 먼저 실행후에, 그다음 폼검증경고창이 뜹니다. 

폼 검증 경고창이 뜨고 확인을 누르면 폼 입력하는곳이 새로고침되서, 문제가 생깁니다.

저는 폼검증 스크립트가 먼저 실행되서 유효성 확인후에, 밑에  이용약관 스크립트가 실행됫으면 좋겠습니다 ㅠ

그래서 버튼 안에다 저걸 넣어볼까하여,

 <script>
    function fregister_submit(f) {
        if(validation_errors() !== ""){
         alert("<?=str_replace("\n", "\\n", strip_tags(validation_errors()))?>");
        } // 윗부분추가
        if (!f.agree1.checked) {
            alert("이용약관 및 개인정보수집 동의하셔야만 가입이 가능합니다..");
            f.agree1.focus();
            return false;
        }
        alert("가입이 완료되었습니다.")
        return true;
    }
</script>

 

이런 형식으로 했더니 되지가 않습니다..

스크립트안에 php문을 넣어서 그런지..

어떻게 해야할지 힌트좀 주시면 감사하겠습니다.

참고로 @배강민님의 소스만 사용했을때는 아주 잘 됩니다..

두개를 혼용하여 사용하고 싶어서..시도하였으나...

어떻게 접근해야할지... 잘 모르겠습니다..ㅠ

 다음글 $CI = new $class(); 설치 후 500 오... (1)
 이전글 폼검증 Form Validation 관련 문의 (3)

댓글

변종원(웅파) / 2017/08/11 05:45:25 / 추천 0
순서를 잘 생각해보세요.
폼검증은 서버를 갔다 오는거고
자바스크립트 함수는 클릭하자마자 바로 실행이 되죠.
폼검증 라이브러리 쓰지마시고 자바스크립트로 따로 구현하셔야할거 같네요. 각 항목은 ajax로 호출하여 결과를 자바스크립트로 처리.
창쓰 / 2017/08/11 11:51:17 / 추천 0
@변종원님 매번 감사합니다! 덕분에 쉽게 처리하였습니다. 정말 감사해요!