CI 코드

제목 [예제] 폼검증 > 콜백
글쓴이 ci세상 작성시각 2010/02/18 15:10:51
댓글 : 0 추천 : 0 스크랩 : 0 조회수 : 14841   RSS


간만에 올려봅니다.^^

1. 메뉴얼 : http://codeigniter-kr.org/user_guide/libraries/form_validation.html#callbacks
2. 사용목적 : 폼검증을 이용하여 체크표시 할때 폼체크와 디비처리 체크를 한곳에 표기하기 위한 목적
3. 사용예제 : 메뉴얼의 경우 한 컨트롤러에서 사용하지만 아래 코드는 폼검증, 에러 표시방법을 공용화 해서 사용

###### 컨트롤러 부분 #######

 

## 쓰기 메소드
function write_method()
{
	// 폼검증	
	$this->_set_validation('write');
			
	// 본문정의
	if ($this->form_validation->run() == FALSE)
	{
		$this->load->view('write');
	}
	else
	{
		$data = array(
			'id' => $this->input->post('id'),
			'title' => $this->input->post('title'),
			'memo' => $this->input->post('memo')
		);	
		
		//INSERT 처리
		$this->db->insert('board', $data);
		
		// 완료처리
		$this->load->view('lists');

	}	
}

## 콜백 메소드 : 아이디 체크
function id_check($id)
{
	$mem_query = $this->db->query("select * from member where id='$id'");
	$mem_data = $mem_query>row_array();

	if($mem_data['id']) 	{
		$this->form_validation->set_message('id_check', ' <b>!</b> '.$id.'는 이미 사용 중입니다.');
		return FALSE;
	} else {
		return TRUE;
	}
}

★ 아주중요!! set_message 에 id_check는 메소드와 동일해야 합니다.	

## 폼검증 메소드
function _set_validation($type)
{
	//에러문구 관련 정의
	$this->common->set_validateion();

	if($type == "code_w") // 쓰기정의 (계정코드)
	{
		$config = array(
		array('field'=>'id', 'label'=>'아이디를', 'rules'=>'required|callback_id_check'),
		array('field'=>'title', 'label'=>'제목을', 'rules'=>'required'),
		array('field'=>'memo', 'label'=>'내용을', 'rules'=>'required')
		);				
	}

	$this->form_validation->set_rules($config);

}


###### 공용 정의 부분 : 라이브러리 예 #######

 

## 공용 라이브러리 : 에러문구 정의
function set_validateion()
{	
	$CI =& get_instance();
	$CI->load->library('form_validation');

	//에러문구 관련 정의
	$CI->form_validation->set_error_delimiters('<font color=red>', '</font><br>');
	$CI->form_validation->set_message('required', ' <b>!</b> %s 입력 해주세요.');
	$CI->form_validation->set_message('alpha_dash', '<b>!</b> 알파벳,숫자,_,- 만 사용 가능합니다.');
	$CI->form_validation->set_message('min_length', '<b>!</b> 길이는 4~12자리 이내만 가능합니다.');
	$CI->form_validation->set_message('max_length', '<b>!</b> 길이는 4~12자리 이내만 가능합니다.');
	$CI->form_validation->set_message('numeric', '<b>!</b> 숫자만 입력 해주세요.');
	$CI->form_validation->set_message('valid_email', '<b>!</b> 이메일 형식이 올바르지 않습니다.');

}






 

 다음글 [예제] 폼검증 > 컨트롤러 (쓰기,수정 동시처리... (1)
 이전글 CI 코드실 너무 썰렁한거 아닌가요? (3)

댓글

없음