덕분에 많이 배우고 있습니다. 채택완료
체크박스가 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개
</p><p><?php</p><p>for($j=0; $j<20; $j++) {</p><p> $jNum = $j<10?sprintf("%02d",$j):$j;</p><p> $jNum2 = $j+1;</p><p>?></p><p><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' ":"";?> /><span style="font-size: 11pt;"><label for="ext1_<?php echo $jNum;?>"><?php echo $jNum2?></label>
</span></p><p><?php } ?></p><p>
답변에 대한 댓글 2개
꾸벅, 좋은거 배웠습니다.
댓글을 작성하려면 로그인이 필요합니다.
그런데 댓글을 보다가 궁금한게
글쓰기 페이지에서 왜 체크박스를 배열로 넣지않고 일일이 추가를하시는지요?
예를들어 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"]);
}
이런식으로 넣으시면 배열로 쫙 들어갈텐데..
답변에 대한 댓글 1개
왜 체크박스를 배열로 넣지않고 일일이 추가를하시는지요? <- 이게 ㅋ 왜 배열을 알면 그렇게 넣었을지요?
그누나 구글링해도 잘 없그 그나마 어렵게 찾아서 좌르륵 액샐로 늘리그 붙이그... 제가 할 수 있는 최선이었습니다~
덕분에 좋은거 배웠습니다. 그리그 다중 배열 체크박스 이늠 꼭 해내겠습니다. 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
<?
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>
<?
}
?>
답변에 대한 댓글 6개
$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|";
알려주신소스는 1~증가하고
제가 업데이트에는 01~ 증가하는거라,,업데이트를 1~증가하도록 바꿨습니다.
그리고 디비 확인해보니 1,3,15번 체크하고 저장하니
1번||3번||||||||||||15번| 정상으로 들어와 있습니다. ㅎ
그런데 수정에서 체크가 풀려있는데 <? if($ext1_00
이부분 때문인거 같습니다.
1~15까지 증가하도록 했는데...ext1_00 이라 그런거 같습니다. 혹시 이거를 어떻게 바꿔주면될가요?
for ($i=1;$i <= 20;$i++) {
//추가부분
if ($i < 10) {
$tmp = "0" . $i;
}
?>
<input type="checkbox" class='ext1' name="ext1_<?=$tmp;?>" value="<?=$i;?>번" <? if($ext1_00 == ($i."번") ) echo 'checked="checked"'; ?>>
<label for="ext1_<?=$tmp;?>">01번</label>
<?
}
?>
<? if($ext1_00 == ($i."번") ) echo 'checked="checked"'; ?>
이부분에서 ext1_00이게 증가하지않아 체크를 불러오지 못하는거 같군요,,
이제 다중체크가 안되고,,,이유를 모르겟으니,,ㅋ
여러가지로 해보겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
</p><p><?
$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>";
}</p><p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인