덕분에 많이 배우고 있습니다.
본문
체크박스가 20개쯤 되는데... 소스가 너무 길어 줄이는 방법이 없을지 하구요,,,머리가 빠게질거 같습니다능
<input type="checkbox" class='ext1' name="ext1_00" value="1번" <? if($ext1_00 == "1번") echo 'checked="checked"'; ?>>
<label for="ext1_00">01번</label>
<input type="checkbox" class='ext1' name="ext1_01" value="2번" <? if($ext1_01 == "2번") echo 'checked="checked"'; ?>>
<label for="ext1_01">02번</label>
답변 5
<?php
for($j=0; $j<20; $j++) {
$jNum = $j<10?sprintf("%02d",$j):$j;
$jNum2 = $j+1;
?>
<input type="checkbox" class="ext1" name="ext1_<?php echo $jNum;?>" id="ext1_<?php echo $jNum;?>" value="<?php echo $jNum2;?>" <?php echo ${"ext1_".$jNum} == $jNum2?" checked='checked' ":"";?> /><label for="ext1_<?php echo $jNum;?>"><?php echo $jNum2?></label><br/>
<?php } ?>
채크박스로 무엇을 하실지 알려주시면
원하시는 답변에 훨씬 근접하실 거에요^^
<?
$ext1_00 = "1번";
$ext1_01 = "2번";
$ext1_02 = "3번";
$ext1_03 = "4번";
for($i=0; $i<20; $i++) {
$j = $i + 1;
$checked = ${"ext1_".sprintf("%02d", $i)} == $j."번" ? " checked" : "";
echo "<input type='checkbox' class='ext1' name='ext1_".sprintf("%02d", $i)."' id='ext1_".sprintf("%02d", $i)."' value='".$j."번'".$checked."><label for='ext1_".sprintf("%02d", $i)."'>".$j."번</label>";
}
<?
for ($i=1;$i <= 20;$i++) {
?>
<input type="checkbox" class='ext1' name="ext1_<?=$i;?>" value="<?=$i;?>번" <? if($ext1_00 == ($i."번") ) echo 'checked="checked"'; ?>>
<label for="ext1_<?=$i;?>">01번</label>
<?
}
?>
그런데 댓글을 보다가 궁금한게
글쓰기 페이지에서 왜 체크박스를 배열로 넣지않고 일일이 추가를하시는지요?
예를들어 write.skin.php에서 상단에
<?
$chk_val = array(
'사과' => '1번',
'수박' => '2번',
'참외' => '3번',
'오렌지' => '4번');
?>
이렇게 추가를하고
원하시는 부분에
<tr>
<th scope="row"><label for="wr_10">테스트중<strong class="sound_only">필수</strong></label></th>
<td>
<?php foreach($chk_val as $key => $val) { ?>
<input type="checkbox" name="wr_10[]" value="<?echo $val?>"><?echo $key?> <?}?>
</td>
</tr>
이런식으로 배열로 넣으시면 될것이고
write_update.skin.php파일에서
$wr_1 = "$ext_00|$ext_01|$ext_02|$ext_03|$ext_04|$ext_05|$ext_06|$ext_07|$ext_08|$ext_09|$ext_10|$ext_11|$ext_12|$ext_13|$ext_14|$ext_15|";
이런식으로 일일이 넣으신부분을 다 지우시고
bbs/write_update.php 파일에
if($bo_table=='test'){
$_POST["wr_10"] = implode("|",$_POST["wr_10"]);
}
이런식으로 넣으시면 배열로 쫙 들어갈텐데..