CodeIgniter 한국사용자포럼 BETA
빠르고, 유연한 PHP Framework!

CI 코드


[예제] 폼검증 > 콜백      
ci세상 0 1,549 0 0 2010-02-18 15:10:51


간만에 올려봅니다.^^

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> 이메일 형식이 올바르지 않습니다.');

}






 

  목록  

번호 제   목 글쓴이 날짜 조회 추천수
580 CodeIgniter SimpleXML library [0] 타로 2012-02-05 29 0
577 CI 와 Smarty 템플릿의 결합 [2] 불의회상 2012-01-26 156 0
573 Okada Design Blog 소개 [3] 타로 2012-01-12 272 0
568 woctopus 계정관리도구 [2] milosz 2012-01-09 211 0
566 업로드된 이미지 정사각형으로 썸네일 만드는 함수 [3] 불의회상 2012-01-06 221 0
554 코드 이그나이터를 접하고 처음으로 만들어본 객체 입.. [6] 내일은 2011-11-11 1246 0
528 모델코드 생성기 [25] 불의회상 2011-10-13 1144 1
525 ci memo + tank_auth [2] milosz 2011-10-04 943 0
512 포럼소스를 2.0.1 버전에 맞게 수정하였습니다. [2] 탱크 2011-04-02 3546 2
509 CI 메뉴얼 CHM 버전(영문 2.0) [1] 브라이언 2011-03-30 1242 0
508 CI 메뉴얼 CHM 버전 [0] 브라이언 2011-03-30 1382 0
494 ci memo [8] pam 2011-02-20 1971 1
489 CI 압축 프로그램 [2] 준이 2010-12-27 1636 0
482 듬직이님의 헬퍼 ip 부분 추가. [0] 나이유미 2010-11-22 1998 0
475 SELECT() 사용 시 문제점 [2] 마냐 2010-09-16 2742 0
473 CI의 사용자 인증 소스파일 [2] corean 2010-09-12 3142 0
471 CI 1.7.2 한글 언어팩 1.1 [1] cleansugar 2010-08-26 2220 0
470 Upload 라이브러리 수정본 [0] sisco 2010-07-28 2398 0
464 iScaffold [4] 준이 2010-07-26 1980 0
458 이미지 등분하기_helper [0] 마냐 2010-06-18 2225 0