2026, 새로운 도약을 시작합니다.

초보를 위한 SELECT (셀렉트박스) 함수로 만들어 쉽게 사용하기.

소스를 줄여보기 위한 방법으로 셀렉트박스의 옵션부분을 함수로 만들어서 쉽게 사용하는 방법입니다.
옵션값이 많을 경우 소스를 줄여주는 효과가 있습니다.


* 옵션값의 구분은 "|"으로 되어 있으나 다른 문자로 변경해서 사용해도 됩니다.



1. 함수부분 : 아래 소스를 /lib/common.lib.php 파일에 추가하거나 페이지에 직접 추가해도 됩니다.

[code]
// option_str(text,value,selected 속성을 줄 value)
function option_str($data1,$data2,$option_name=''){

$data1=explode("|",$data1); // 구분자가 "|"로 되어 있으나 다른 문자로 변경 가능
$data2=explode("|",$data2); // 구분자가 "|"로 되어 있으나 다른 문자로 변경 가능
for($i=0; $i < count($data1); $i++){$dataA[$i]=trim($data1[$i]);}
for($i=0; $i < count($data2); $i++){$dataB[$i]=trim($data2[$i]);}
for($i=0; $i < count($data2); $i++){
$selected=($option_name==$dataB[$i])? "selected":"";
$result .="<option value='$dataB[$i]' $selected>$dataA[$i]</option>\n\t\t\t";
}

return($result);
}
[/code]

2. 사용법은 아래와 같이...
[code]
<select name="area" class="area">
<?php echo option_str("=선택=|서울|경기|대전", "|서울|경기|대전", $area); ?>
</select>
[/code]


3. 다른 사용법 (1)
[code]
<?php
$text = "|서울|경기|대전";
$value = "|서울|경기|대전";

?>
<select name="area" class="area">
<?php echo option_str("=선택=".$text, $value, $area); ?>
</select>
[/code]


3. 다른 사용법 (2)
[code]
<?php
$text = "=선택=|서울|경기|대전";
$value = "|서울|경기|대전";

?>
<select name="area" class="area">
<?php echo option_str($text, $value, $area); ?>
</select>
[/code]

4. 다른 사용법 : DB내용을 불러와서 만들기.
[code]
<?php
$sql = "select id_no, name from TABLE_NAME where (1) order by name asc";
$result = sql_query($sql);
while($row=sql_fetch_array($result)) {
$text .= "|".$row[name];
$value .= "|".$row[id_no];
}
?>
<select name="area" class="area">
<?php echo option_str("=선택=".$text, $value, $area); ?>
</select>
[/code]
|

댓글 13개

좋은정보 감사합니다.
게시판의 white, read, list로 구분해서 설명해주시면 저같은 초보에게는 감사하겠습니다.
좀 이해력이 떨어져서요
white=>write ㅎ
게시판 작성시 여분필드 wr_1 값에 지역명을 저장한다는 가정하에 설명 덧붙일게요.

게시판에 글을 작성하는 사람은 서울, 경기, 대전, 대구, 부산, 목포, 광주, 울산, 등등...........중에서 한개를 선택해야 겠죠.

그럼, 스킨폴더에 write.skin.php 파일 수정해야겠죠.
[code]
<select name="wr_1" id="wr_1" calss="wr_1">
<option>=지역선택=</option>
<option value="서울" <?php echo ($write[wr_1]=='서울')? "selected":""; ?>>서울</option>
<option value="경기" <?php echo ($write[wr_1]=='경기')? "selected":""; ?>>경기</option>
<option value="대전" <?php echo ($write[wr_1]=='대전')? "selected":""; ?>>대전</option>
- 이하생략 -
</select>
[/code]


이런 형태로 만드는게 일반적이죠.. 요걸 본문내용의 탭 내용대로 만들자고 한다면..

[code]
<select name="wr_1" id="wr_1" class="wr_1">
<?php echo option_str("=지역선택=|서울|경기|대전", "|서울|경기|대전", $write['wr_1']; ?>
</select>
[/code]

이렇게 간단하게 쓸수 있다는 겁니다.

옵션갯수가 몇개 안된다면 첫번째 방법으로 사용해도 불편함이 없지만.. 옵션의 갯수가 수십개 이상 된다면 소스가 상당히 길어지겠죠.

충분히 이해가 되셨나 모르겠네요.
몇번 시도하다 보면 쉽게 이해가 될거에요.
좋은정보 감사합니다.
좋은정보 감사합니다^^
감사합니다
찾던 정보인대
감사합니다
실행해보니 바뀌는 속도가 살짝 딜레이가 있네요
유용하네요..
좋은 정보 감사합니다

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 4일 전 조회 125
2740 5일 전 조회 112
2739 1주 전 조회 212
2738 1주 전 조회 221
2737 1주 전 조회 184
2736 2주 전 조회 282
2735 3주 전 조회 288
2734 3주 전 조회 264
2733 1개월 전 조회 267
2732 1개월 전 조회 302
2731 1개월 전 조회 269
2730 1개월 전 조회 227
2729 1개월 전 조회 359
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 259
2725 1개월 전 조회 332
2724 1개월 전 조회 363
2723 1개월 전 조회 267
2722 1개월 전 조회 300
2721 1개월 전 조회 214
2720 2개월 전 조회 304
2719 2개월 전 조회 308
2718 2개월 전 조회 202
2717 2개월 전 조회 337
2716 2개월 전 조회 203
2715 2개월 전 조회 313
2714 2개월 전 조회 273
2713 2개월 전 조회 377
2712 2개월 전 조회 289
🐛 버그신고