테스트 사이트 - 개발 중인 베타 버전입니다

덕분에 많이 배우고 있습니다. 채택완료

민쯩먼저깔게요 9년 전 조회 4,893

체크박스가 20개쯤 되는데... 소스가 너무 길어 줄이는 방법이 없을지 하구요,,,머리가 빠게질거 같습니다능

 

<input type="checkbox"   class='ext1' name="ext1_00" value="1번" <? if($ext1_00 == "1번")  echo 'checked="checked"'; ?>>

   <label for="ext1_00">01번</label>&nbsp;&nbsp;

            

<input type="checkbox"  class='ext1' name="ext1_01" value="2번" <? if($ext1_01 == "2번")  echo 'checked="checked"'; ?>>

   <label for="ext1_01">02번</label>&nbsp;&nbsp;

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트

</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개

민쯩먼저깔게요
9년 전
감사합니다~ 이붕들이 그누 고수님들이세요~
민쯩먼저깔게요
9년 전
학생님~ 늘 감사합니다. 깔끔하게 되네요~. 다른 분거는...제가 잘못했는지는 모르지만 뭔가 안되구요,
꾸벅, 좋은거 배웠습니다.

댓글을 작성하려면 로그인이 필요합니다.

그누위즈

그런데 댓글을 보다가 궁금한게

글쓰기 페이지에서 왜 체크박스를 배열로 넣지않고 일일이 추가를하시는지요?

예를들어 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개

민쯩먼저깔게요
9년 전
댓글을 보다가 저도 궁금해서 적습니다..
왜 체크박스를 배열로 넣지않고 일일이 추가를하시는지요? <- 이게 ㅋ 왜 배열을 알면 그렇게 넣었을지요?

그누나 구글링해도 잘 없그 그나마 어렵게 찾아서 좌르륵 액샐로 늘리그 붙이그... 제가 할 수 있는 최선이었습니다~
덕분에 좋은거 배웠습니다. 그리그 다중 배열 체크박스 이늠 꼭 해내겠습니다. 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

<?

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>&nbsp;&nbsp;

<?

}

?> 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

민쯩먼저깔게요
9년 전
감사합니다~ 이붕들이 그누 고수님들이세요~
민쯩먼저깔게요
9년 전
테이블 안밀리고 20개 잘 나옵니다, 그런데,,,<?=$i;?> 이부분인지 1부터 증가하지 않아서 저장이 안되거나 체크가 풀리는 거 같은데..왜 그렇지요?
바다사랑
9년 전
소스를 봐야 알 듯하네여.
민쯩먼저깔게요
9년 전
업데이트에서 이렇게 했습니다.
$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 이라 그런거 같습니다. 혹시 이거를 어떻게 바꿔주면될가요?
바다사랑
9년 전
<?

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>&nbsp;&nbsp;

<?

}

?>
민쯩먼저깔게요
9년 전
시간뺏어 죄송합니다. 역시 저장은 잘되는데
<? 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개

민쯩먼저깔게요
9년 전
감사합니다~ 이붕들이 그누 고수님들이세요~

댓글을 작성하려면 로그인이 필요합니다.

채크박스로 무엇을 하실지 알려주시면

원하시는 답변에 훨씬 근접하실 거에요^^ 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인