CI 코드

제목 [예제] 입력,수정에서의 폼체크 및 처리
글쓴이 ci세상 작성시각 2009/08/26 14:38:50
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 16495   RSS

아래 코드는 제가 주로 사용하는 코드인데요 입력, 수정시 많이 사용하고 있습니다. 컨트롤러 부분에 호출, 에러문구 관련 정의는 거의 중복될 가능성이 많기 때문에 모델이나, 별도의 헬퍼로 담아서 불러와서 사용중입니다.

※ 에러문구 관련 정의에서 set_error_delimiters에 <br> 태그가 이곳에 들어간것이 핵심이기도 합니다.^^



## 컨트롤러 부분 ##

if ($this->form_validation->run() == FALSE) // 작성폼
{
	// 호출
	$this->load->library('form_validation');

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


	// 폼체크
	$config = array(
		array('field'=>'name', 'label'=>'이름을', 'rules'=>'required'),
		array('field'=>'id', 'label'=>'아이디를', 'rules'=>'required')
	);	

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


	$this->load->view('write');
}
else // 입력,수정,삭제
{
	$data = array(
		'name' => $this->input->post('name'),
		'id' => $this->input->post('id'),
	);	
	
	//INSERT 처리
	$this->db->insert('board', $data);
	
	// 완료처리
	redirect('list');	
}
## View ##

1. 데이터 유지
<input type="text" name="name" size="15" value="<?php echo set_value('name');?>">
<input type="text" name="id" size="15" value="<?php echo set_value('id');?>">


2. 폼체크 경고문구 (일괄)
<?php echo validation_errors(); ?>

3. 폼체크 경고문구 (개별)
<?php echo form_error('name'); ?>
<?php echo form_error('id'); ?>

참조 : http://codeigniter-kr.org/user_guide/libraries/form_validation.html




 다음글 데이타 global로 설정하여 view에 넘기기 (6)
 이전글 [예제] 세그먼트에 간략 사용 (4)

댓글

케이든 / 2009/08/26 14:51:14 / 추천 0
참고로 현재

name값을 키 없이 배열로 name="url[]" 이런식으로 여러개를 받아와서

폼체크 하면 원치 않는결과가 나옵니다 ㅠㅠ

svn validation library도 같은 증상이네요
ci세상 / 2009/08/26 15:53:28 / 추천 0
필드배열 부분 잘되던데요 ;; 혹시 안되시는 코드함 올려주실 수 있으세요?
케이든 / 2009/08/26 16:10:08 / 추천 0
//view
<input type="text"  name="url[]" value="<?=set_value('url[]','http://')?>" /><?=form_error('url[]')?>
<input type="text"  name="url[]" value="<?=set_value('url[]','http://')?>" /><?=form_error('url[]')?>
<input type="text"  name="url[]" value="<?=set_value('url[]','http://')?>" /><?=form_error('url[]')?>


//controller
$rule = array
(
	'field' => 'url[]',
	'label' => 'URL',
	'rules' => 'required|trim'
);
풀코드는 없고 이런식으로 했엇습니다.

만약 input 3개중 마지막이 비어있다면 마지막에만 에러메세지가 나와야하는데

모든 input에 에러메세지가 나왔고,

value도 이전값으로 돌아가야하는데 input 안에 'Array' 라는

문자열이 value로 나왔던거같네요.

혹시 저렇게 해도 되시면 말씀해주세요. 한때 저거때문에 스트레스좀 받았거든요 ㅋㅋ