CI 코드

제목 [예제] 폼헬퍼 > 동적 다중셀렉트 (1단, 2단)
글쓴이 ci세상 작성시각 2010/02/19 17:13:04
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 19909   RSS

1. 메뉴얼 : http://codeigniter-kr.org/user_guide/helpers/form_helper.html
2. 용도 : 폼헬퍼 > form_dropdown 기본 메뉴얼을 참조로 동적 다중 셀렉트 구현
3. 동적 : 다이나믹 이용

##### 모델 (배열 정의) ########
<?
function category($num) {

	// 1단 : 디폴트
	$option = array(
				''  => '== 1단 선택 ==',
				'1'  => '구분1',
				'2'  => '구분2',
				'3'  => '구분3'
			);
			
	// 2단 : 디폴트
	$option9 = array(
				''  => '== 2단 선택 =='			     
			);	            

	// 2단 : 구분1
	$option1 = array(
				''  => '== 2단 선택 ==',
				'1'  => '서브1',
				'2'  => '서브2'
			);

	// 2단 : 구분2
	$option2 = array(
				''  => '== 2단 선택 ==',
				'1'  => '서브1',
				'2'  => '서브2'
			);
								
	// 2단 : 구분3
	$option3 = array(
				''  => '== 2단 선택 ==',
				'1'  => '서브1',
				'2'  => '서브2'
			);	
	
	if($num){
		$result = ${'option'.$num};
		return($result);
	} else {
		return($option);
	}
}
?>


##### 컨트롤러 (동적 2단 처리) ########
<?
function category_method()
{
	
	$target = $this->common_model->seg_value('target');
	$form = $this->common_model->seg_value('form');
	$trigger = $this->common_model->seg_value('trigger');
	
	$opt_var = $this->common_model->category($trigger);
	$opt_tot = count($opt_var);

	echo "document.forms['$form'].elements['$target'].length = $opt_tot; \n";
	$i=0;
	foreach($opt_var as $key=>$value) :
		echo "document.forms['$form'].elements['$target'].options[$i].text = '$value'; \n";
		echo "document.forms['$form'].elements['$target'].options[$i].value = '$key'; \n";
		$i++;
	endforeach;					

}	
?>


##### 뷰 (동적 1단, 2단 사용) ########
<script id="dynamic"></script>
<SCRIPT LANGUAGE=JAVASCRIPT>
function category(sel,target)
{
	var trigger = sel.options[sel.selectedIndex].value;
	var form = sel.form.name;
	
	dynamic.src = "/board/category/form/" + form + "/trigger/" + trigger + "/target/" + target;
}
</SCRIPT>


<?	
## 1단생성
$cat1 = $this->common_model->seg_value('cat1');
$cat2 = $this->common_model->seg_value('cat2');

echo form_dropdown('cat1', $this->common_model->category(''), $cat1, "onchange=category(this,'cat2')");

## 2단생성
if(!$cat1)	$cat1 = 9;
echo form_dropdown('cat2', $this->common_model->category($cat1), $cat2);
?>

 다음글 [예제] cieditor 웹에디터 (4)
 이전글 [예제] 폼검증 > 컨트롤러 (쓰기,수정 동시처리... (1)

댓글

미드필드 / 2010/02/23 04:45:11 / 추천 0
좋은 코드 감사합니다.