CI 묻고 답하기

제목 select 박스 만들때 최초 기본 선택값 문제
글쓴이 헤르밈 작성시각 2009/10/31 11:50:37
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 39233   RSS

안녕하세요~
다름 아니라 셀렉트 박스를 만들고 기본으로 선택된 값에 대한 의문으로 글 남깁니다.

  <select name='location'>
   <option value="서울" <?=set_select("location","서울",FALSE);?>>서울</option>
   <option value="대전" <?=set_select("location","대전",FALSE);?>>대전</option>
   <option value="대구" <?=set_select("location","대구",FALSE);?>>대구</option>
   <option value="부산" <?=set_select("location","부산",FALSE);?>>부산</option>
  </select>

위와 같이 만들고 폼으로 값을 넘길때는 대구를 선택해서 넘기면 기본으로 대구가 선택되어 집니다.
다만.. 맨 처음 페이지를 로드 했을때 예를 들면 서울이 꼭 선택되어지게 하고 싶은데요.
첫 로드가 될때 페이지를 보면 무조건 부산이 선택이 되어있네요.

html 소스 보기로 보니.  모든 요소 속성들에 selected='selected' 가 들어 가 있습니다.
물론 대구만 선택해서 다음 값을 소스 보기 하면 다른 값들은 속성값이 없고 대구에만 selected='selected' 로 정상적입니다.

첫 값을 서울로 주고 싶으면 어떻게 하면 될까요?
 간편하게 3항 연산자를 쓰거나
<? if($location == "서울") echo "selected"; ?>> 이런식으로 if 구문으로 처리해도 되지만 가능하면
제공되는 set_select 를 사용해보고 싶어서요~ ^^*

질문의 요지는 맨위와 같이 select 박스를 만들게 되면 기본으로 모든 selected 의 속성값이 셋팅이 되서 결과적으로
부산이 선택됩니다.
==소스보기 결과== ===========A경우
<select name='location'>
   <option value="서울"  selected="selected">서울</option>
   <option value="대전"  selected="selected">대전</option>
   <option value="대구"  selected="selected">대구</option>
   <option value="부산"  selected="selected">부산</option>
  </select>

어떠한 값(대구)를 선택하고 submit 하게 되면  정확히 대구를 선택한 상태로 남습니다.
==대구를 선택후 소스보기 결과==========B경우
select name='location'>
   <option value="서울" >서울</option>
   <option value="대전" >대전</option>
   <option value="대구"  selected="selected">대구</option>
   <option value="부산" >부산</option>
  </select>

이때 A경우 전 서울이 최초 선택되게 하고 싶지만.. 순서를 바꾸지 않는 이상 부산이 항상 선택됩니다.
소스상으로 맨 마지막 요소에 select가 있기때문에 당연한 결과 이겠지요??

질문이 넘 어렵나 ㅎㅎ


즐거운 주말 되세요.

 다음글 엑티브 레코드 분리해서 사용하기
 이전글 레이아웃 질문 (10)

댓글

ci세상 / 2009/10/31 13:14:01 / 추천 0
처음부터 selected가 될리는 없을것인데요;; 컨트롤러, 뷰를 올려주시면 좀더 정확하게 답변은 가능하겠지만.. 다음처럼 쓰시면 될것 같습니다.

## 컨트롤러 ###
<?php

class Welcome extends Controller {

	function Welcome()
	{
		parent::Controller();	
	}


	function index()
	{
		$this->load->helper(array('form', 'url'));
		
		$this->load->library('form_validation');

		$this->form_validation->set_rules('location', 'location', 'required');
		$this->form_validation->set_rules('username', 'username', 'required');
				
		if ($this->form_validation->run() == FALSE)
		{
			$this->load->view('form');
		}
		else
		{
			echo "처리";
		}
	}
}


## 뷰 ##
<html>
<head>
<title>My Form</title>
</head>
<body>

<?php echo validation_errors(); ?>

<?php echo form_open(''); ?>

<select name='location'>
	<option value="" <?=set_select("location","",FALSE);?>>선택</option>
   <option value="서울" <?=set_select("location","서울",TRUE);?>>서울</option>
   <option value="대전" <?=set_select("location","대전");?>>대전</option>
   <option value="대구" <?=set_select("location","대구");?>>대구</option>
   <option value="부산" <?=set_select("location","부산");?>>부산</option>
  </select>

  <input type="text" name="username" value="" size="50" />

<div><input type="submit" value="Submit" /></div>

</form>

</body>
</html>