체크를 한 것들을 선택하고 그 값을 DB에 담긴 것을 꺼내어 선택된 것을 체크되게 해주는 것입니다.
실제 업무에도 많이 쓰이기도 하고 또한 CSS나 웹표준으로도 변환해서 이용하시면 될 듯합니다..
function caeSubmit(f) {
msgChecked(f);
if (count < 1) {
alert("선택하신 제품구분이 없습니다.\n제품구분을 선택하여 주시기 바랍니다.");
f.bunya1[0].focus();
f.bunya1[0].checked==true;
return false;
}
f.target="deffrm";
f.method="post";
f.action="act.php?mode=caeSave";
f.submit();
}
function msgChecked(f) {
var i=0;
count = 0;
CheckedItems1="";
while (i < f.elements.length) {
if ((f.elements[i].name == 'bunya1') && (f.elements[i].checked)) {
CheckedItems1 += f.elements[i].value + "*";
f.chkitem1.value=CheckedItems1.substr(0,CheckedItems1.length-1);
count++;
}
i++;
}
}
[php프로그램 부분]
$result=db_query("SELECT * FROM CatalGues WHERE id=$_GET[id]");
$row=db_fetch_assoc($result);
<form name="form2" enctype="multipart/form-data" onSubmit="return caeSubmit(this);">
<table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
<?
$chkcnt=6;
$bunya_item=array("자동차","항공","철도","선박","산업기계","중장비","농기계","전자","건설토목","기타");
$bunya = explode("*", $row["bunya1"]);
for($i=0; $i<sizeof($bunya_item); $i++) {
$cnt++;
$na = intval( $cnt / $chkcnt);
$first = ( $na * $chkcnt) + 1;
$last = ( $na * $chkcnt) + $chkcnt;
if ($cnt==$first) {
?>
<tr>
<?
}
$chk = 0;
for($j=0; $j<sizeof($bunya); $j++) {
if( $bunya[$j]==$bunya_item[$i]) {
?>
<td><input type="checkbox" name="bunya1" value="<?=$bunya_item[$i]?>" checked onFocus="this.blur();"><font color="darkred"><?=$bunya_item[$i]?></font></td>
<?
$chk = 1;
}
}
if($chk==0) {
?>
<td><input type="checkbox" name="bunya1" value="<?=$bunya_item[$i]?>" onFocus="this.blur();"><?=$bunya_item[$i]?></td>
<?
}
if ($cnt==$last) {
?>
</tr>
<?
}
}
?>
</table>
<input type="hidden" name="chkitem1">
</form>