스킨 제작을 하다보면 셀렉트와 체크박스 코딩할 일이 많습니다.
// 연료

해당 소스 코딩(write.skin.php)
변수셋팅화면 일부

write_update.head.php 에서 후처리 일부
write_update.skin.php 모습
view화면
해당 코딩 view.skin.php

유지 보수가 간편하고 Ctrl+c Ctrl+v에 조금 더 최적화(;;) 된 팁입니다.
양이 적은 경우 아래 일반적인 방법으로 해도 큰 무리가 없습니다만,
항목이 늘어나고 변동요지가 많을 경우 좀 귀찮습니다.
1. 일반적인 방법(write.skin.php)
1) 셀렉트
<select name='wr_1' itemname="년" class="select02">
<option value='2008' <? if($write[wr_1] == 2008) echo " selected "; ?>>2008
<option value='2007' <? if($write[wr_1] == 2007) echo " selected "; ?>>2007
</select>
2) 체크박스
<td>
<input type="checkbox" class="20box" name="wr_1" value="가" <? if ($write[wr_1] == '가') echo "checked";?>> 가
<input type="checkbox" class="20box" name="wr_1" value="나" <? if ($write[wr_1] == '나') echo "checked";?>> 나
</td>
2. 간단한 함수를 생성해서 최적화(?)
함수1.
function select_option_go($_array, $selectValue='') {
foreach($_array as $value) {
$result .= "<option value='$value' ";
if($value == $selectValue) $result .= " selected";
$result .= ">$value</option>\n";
}
return $result;
}
함수2.
function input_checkbox_go($name, $_array, $opt = '', $ch_br = '') {
foreach ($_array as $key => $value) {
echo "<input name='{$name}[]' type='checkbox' value='{$value}'";
if(is_array($opt) && in_array($value,$opt)) echo ' checked';
echo ">{$value} \n";
if($ch_br) echo "<br>\n";
}
}
함수3. view.skin.php에서 사용할 녀석
function print_checkbox_go($name, $_array, $opt, $ch_br = '') {
global $board_skin_path;
foreach ($_array as $key => $value) {
if(is_array($opt) && in_array($value,$opt)) echo "<img src='{$board_skin_path}/img/box_check01.gif'> <span class='red'>$value</span> \n";
else echo "<img src='{$board_skin_path}/img/box_check02.gif'> $value \n";
if($ch_br) echo "<br>\n";
}
}
항목셋팅 예
// 년
for($i=date('Y'); $i >= 1950; $i--) $setValue['연식'][] = $i;
$setValue['연료'][] = '가솔린';
$setValue['연료'][] = '디젤';
$setValue['연료'][] = 'LPG';
$setValue['연료'][] = '가솔린/LPG겸용';
$setValue['연료'][] = '가솔린/CNG겸용';
$setValue['연료'][] = '하이브리드';
// 편의장치1
$setValue['편의장치1'][] = '썬루프';
$setValue['편의장치1'][] = '파노라마썬루프';
$setValue['편의장치1'][] = 'HID/제논램프';
$setValue['편의장치1'][] = '오토라이트';
$setValue['편의장치1'][] = '스마트키/키레스고';
$setValue['편의장치1'][] = '엔진스타트버튼';
$setValue['편의장치1'][] = '라이트세척장치';
$setValue['편의장치1'][] = '자동주차시스템';
$setValue['편의장치1'][] = '전자주차브레이크';
사용방법(write.skin.php)
1) 셀렉트
<select name='wr_1' style='width:60px;'>
<option value=''>::년::</option>
<?=select_option_go($setValue['연식'],$write['wr_1'])?>
</select> 년
<select name='wr_2'>
<option value=''>::선택하세요::</option>
<?=select_option_go($setValue['연료'],$write['wr_2'])?>
</select>
2) 체크박스
<?=input_checkbox_go('wr_3',$setValue['편의장치1'],$write['wr_3'], '<br>')?> or
<?=input_checkbox_go('wr_3',$setValue['편의장치1'],$write['wr_3'])?>
실제 사용예시
화면


가장 큰 이점 중 하나가 view단에서 재빠른 처리가 가능하다고나 할까요.;
예시 화면은 실제 적용시 몇 가지 부분들이 추가된 장면입니다만, 기본은 거의 같습니다.
댓글 12개
//write.skin.php의 내용
<?
$setValue['편의장치1'][] = '썬루프';
$setValue['편의장치1'][] = '파노라마썬루프';
$setValue['편의장치1'][] = 'HID/제논램프';
$setValue['편의장치1'][] = '오토라이트';
$setValue['편의장치1'][] = '스마트키/키레스고';
$setValue['편의장치1'][] = '엔진스타트버튼';
$setValue['편의장치1'][] = '라이트세척장치';
$setValue['편의장치1'][] = '자동주차시스템';
$setValue['편의장치1'][] = '전자주차브레이크';
?>
<?=input_checkbox_go('wr_16',$setValue['편의장치1'],$write['wr_16'])?>
//write.update.skin.php의 내용
$wr_16 = implode("|" ,$편의장치); //1번
$wr_16 = implode("|" ,$wr_16); //2번
$sql_common = '';
for ($i = 11 ; $i <=24 ; $i ++ ) {
$tmp = "wr_$i" ;
$sql_common .= "$tmp = '{$$tmp}',";
}
$sql_common .= "wr_30 = '{$wr_30}'";
sql_query(" update $write_table set {$sql_common} where wr_id = '$wr_id' ");
1번 2번 다 DB에 아무 값도 들어 가지 않습니다.
어디가 잘못 된건지요??
<?
$setValue['편의장치1'][] = '썬루프';
$setValue['편의장치1'][] = '파노라마썬루프';
$setValue['편의장치1'][] = 'HID/제논램프';
$setValue['편의장치1'][] = '오토라이트';
$setValue['편의장치1'][] = '스마트키/키레스고';
$setValue['편의장치1'][] = '엔진스타트버튼';
$setValue['편의장치1'][] = '라이트세척장치';
$setValue['편의장치1'][] = '자동주차시스템';
$setValue['편의장치1'][] = '전자주차브레이크';
?>
<?=input_checkbox_go('wr_16',$setValue['편의장치1'],$write['wr_16'])?>
//write.update.skin.php의 내용
$wr_16 = implode("|" ,$편의장치); //1번
$wr_16 = implode("|" ,$wr_16); //2번
$sql_common = '';
for ($i = 11 ; $i <=24 ; $i ++ ) {
$tmp = "wr_$i" ;
$sql_common .= "$tmp = '{$$tmp}',";
}
$sql_common .= "wr_30 = '{$wr_30}'";
sql_query(" update $write_table set {$sql_common} where wr_id = '$wr_id' ");
1번 2번 다 DB에 아무 값도 들어 가지 않습니다.
어디가 잘못 된건지요??
게시글 목록
| 번호 | 제목 |
|---|---|
| 34706 | |
| 34693 | |
| 34563 | |
| 34536 | |
| 34521 | |
| 34480 | |
| 34479 | |
| 34466 | |
| 34437 | |
| 34436 | |
| 34435 | |
| 34406 | |
| 34398 | |
| 34387 | |
| 34382 | |
| 34375 | |
| 34364 | |
| 34336 | |
| 34294 | |
| 34293 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기