CI 묻고 답하기

제목 form_validation 사용할 때 set_rules할 태그네임이 form 내부에 있어야 하나요?
글쓴이 lzao 작성시각 2014/04/18 12:57:24
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 13869   RSS
코드이그나이터 폼검증을 사용하려고 하는데 어떻게 동작하는건지 잘 모르겠네요.

일단 책에 나온대로 컨트롤러 쪽에 이런식으로 선언을 했구요.

        $this->load->library('form_validation');
        $this->form_validation->set_rules('cp_no','쿠폰번호','callback_cpno_check');
        if($this->form_validation->run() == false){
            $this->load->view('fail');
        } else {
            alert('성공','success');
        }
}
public function cpno_check($cpno){
        if($cpno) {
            if(strlen($cpno) != 6) {
                $this->form_validation->set_message('cpno_check', '입력형식이 다릅니다. 다시 입력해주십시오.');
            } else {
                return true;
            }
        } else {
            return false;
        }
    }

뷰쪽에는 
    if( form_error('cpno') ) {
        $error_cpno = form_error('cpno');
    } else {
        $error_cpno = form_error('cpno_check');
    }
?>

<font class="error_ck" style="padding-left:5px;color:red;" id="cpno_error"<?php if($error_cpno == false) { echo "쿠폰번호를 입력해주세요"; } else { echo $error_cpno;}?></font>

이런식으로 선언을 했어요 

근데 저 font태그가 form내부에 있는게 아니거든요
그래서 submit할 버튼도 그냥 input type="button"으로 해서 만들고 그래서

전송을 눌러도 아무런 반응도 없고 어떤식으로 해야지 작동하는지 알고 싶네요
 
 다음글 $this->db->insert() 로 my... (7)
 이전글 ci log 찍기 (2)

댓글

변종원(웅파) / 2014/04/18 13:09:46 / 추천 0
우선 폼 전송이 되는지 보세요. 

그리고 콜백함수가 단순히 자리수만 체크하는 거라면 set_rule에서 처리할 수 있습니다.
lzao / 2014/04/18 18:50:31 / 추천 0
아 답변 감사합니다.

폼전송은 됩니다.

근데 문제가 폼으로 감싼 데이터(hidden) 따로 있고 유효성 검사할 input text 박스들은 따로 있습니다.

그래서 form_validation을 사용해서 유효성검사할 때 폼 내부에 없는 input text 박스들을 유효성 체크 할 수 있는지 없는 지 알고 싶습니다.

 
변종원(웅파) / 2014/04/18 18:55:36 / 추천 0
폼검증은 어쨌든 폼전송이 일어나야 하는 거라서 버튼 태그로 작업을 하더라도 컨트롤러에 POST로 값을 전송한다면
사용할 수 있습니다.