루미집사

checkbox 함수로 만들어 편하게 쓰기...

2017-04-20 23;32;49_1.jpg
초보분들을 위한 팁!!

체크박스생성을 함수로 만들어서 어느페이지에서나 쉽게 만들어 사용할 수 있습니다.

# checkbox 함수
[code]
function checkbox($data1,$data2,$db_data,$name){
$data1=explode("|",$data1);
$data2=explode("|",$data2);
for($i=0; $i < count($data1); $i++){$dataA[$i]=$data1[$i];}
for($i=0; $i < count($data2); $i++){$dataB[$i]=$data2[$i];}
$check=explode("|",$db_data);
$result .="<ul>";

$j=0;
for($i=0; $i < count($data2); $i++) {

if($dataB[$i]==$check[$j]) {
$checked="checked";
$j++;
} else {
$checked="";
}

$result .= "<li>";
$result .= "<input type='checkbox' name='${name}[]' id='{$name}_$i' value='$dataB[$i]' $checked /><label for='{$name}_$i'> {$dataA[$i]}</label>";
$result .= "</li>";
}

$result .="</ul>";
return($result);
}
[/code]

위 코드를 ./lib/common.lib.php 파일을 열어 맨 끝줄에 추가하거나 새로운 파일로 만들어 include 하거나..
아니면 checkbox를 만들 페이지에 직접 추가하는 방법이 있습니다.

이렇게 함수를 만들어 놓고... 사용법은 아래의 예제와 같습니다.

예제)
[code]
<?php

$da_text = "사과|배|오렌지|귤|자몽|수박|참외|바나나|감|자두|홍시|포도|토마토"; // 텍스트
$da_value = "사과|배|오렌지|귤|자몽|수박|참외|바나나|감|자두|홍시|포도|토마토"; // checkbox의 value

$db_data = "참외|바나나|토마토"; //DB에서 불러온 값
?>
<style>
/* ul 및 li 스타일을 정의해주시고... */
ul { margin:0px; padding:0px; }
li { display:inline; margin-right:10px; cursor:pointer; }
</style>

<?php echo checkbox($da_text,$da_value,$db_data,"fruit"); ?>
[/code]

checkbox("텍스트","값","DB값","input의 name");


위 함수 및 예제문에서는 구분자가 "|" 으로 되어 있습니다.
체크후 DB에 저장시에도 "|"으로 구분하여 저장하시면 됩니다.

물론, 구분자는 원하는 문자로 변경하셔도 됩니다.

첨부파일

|

댓글 5개

깔끔하게 잘되어있네요
멋진분이시네요
좋은 정보 감사합니다~~
훌륭하신 팁입니다. 고맙습니다!
이건 뭐,,,대단합니다.
체크박스 천개만들어야 하는데..
라디오도 어떻게 좀 해주세요~
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

+
제목 글쓴이 날짜 조회
8년 전 조회 1.4만
8년 전 조회 9,187
8년 전 조회 1만
8년 전 조회 4,303
8년 전 조회 4,867
8년 전 조회 5,239
8년 전 조회 6,821
8년 전 조회 8,792
8년 전 조회 5,165
8년 전 조회 1.1만
8년 전 조회 6,753
8년 전 조회 4,667
8년 전 조회 7,108
8년 전 조회 6,256
8년 전 조회 6,092
8년 전 조회 7,123
8년 전 조회 1.9만
8년 전 조회 1만
8년 전 조회 1.6만
8년 전 조회 4,125
8년 전 조회 4,567
8년 전 조회 4,479
8년 전 조회 1.1만
8년 전 조회 8,473
8년 전 조회 6,494
8년 전 조회 1만
8년 전 조회 1.2만
8년 전 조회 9,708
8년 전 조회 6,816
8년 전 조회 6,491
🐛 버그신고