채택완료

게시판 폼 하나 짜고 있는데 하나가 막혀서요

2017-10-09 (월) 10:27:57 2,232

안녕하세요

추석 명절은 잘 보내고 계시는지 모르겠습니다.

다름이 아니오라

현제 제가 게시판 폼을 하나 만들고 있는데요

체크 박스에서 막히는 상태라서요

그런데 어떤 분이 $arr = implode(",", checkbox name); 이 코드 한줄이면 다 해결이 도니다고 하는데

이것을 어디에다가 적용을 해야 하는지 잘 몰라서요

현제 체크 박스 코딩은

<tr>
    <th scope="row"><label for="sponsordate">기타사항</label></th>
     <td colspan="3">
      <input type="checkbox" name="sponsordate" <?php if( $write['sponsordate'] == "1층 강당" ){?> checked <?php }?> value="5"> 책상
      <input type="text" name="sponsordate" id="sponsordate5" style="width:100px;" value="<?php echo $write['sponsordate']; ?>"  class="frm_input" size="20" maxlength="50"/>
      <input type="checkbox" name="sponsordate" <?php if( $write['sponsordate'] == "2층 도서관" ){?> checked <?php }?> value="10"> 의자&nbsp;&nbsp;
      <input type="text" name="sponsordate" id="sponsordate5" style="width:100px;" value="<?php echo $write['sponsordate']; ?>"  class="frm_input" size="20" maxlength="50"/>
      <input type="checkbox" name="sponsordate" <?php if( $write['sponsordate'] == "2층 도서관" ){?> checked <?php }?> value="10"> 기타&nbsp;&nbsp;
      <input type="text" name="sponsordate1" id="sponsordate5" style="width:150px;" value="<?php echo $write['sponsordate']; ?>"  class="frm_input" size="20" maxlength="50"/>
     </td>
   </tr>

이렇게 해 두었는데요

이렇게 하면 적용이 되는 것인지 궁금 합니다.

책상 과 의자는 체크를 하고 나서 수량을 적어야 합니다.

그런데 위에 적힌 코드대로 하면 되는지요 되지 않아서요

고수님들게서 보시고 답변좀 부탁을 드려도 될까요

|

답변 2개 / 댓글 4개

채택된 답변
+20 포인트

implode가 정상적으로 작동했는지 점검해보세요.

답변에 대한 댓글 3개

무슨 말씀 이신지요 잘 몰라서요
implode로 문자열을 잘라서 배열로 가져오게 되는게 이것이 올바르게 작동했는지 부터 파악해야 합니다.
$arr = implode(",", checkbox name); 이거 안쓰고 그냥


<tr>
<th scope="row"><label for="sponsordate">기타사항</label></th>
<td colspan="3">
<input type="checkbox" name="sponsordate" <?php if( $write['sponsordate'] == "1층 강당" ){?> checked <?php }?> value="5"> 책상
<input type="text" name="sponsordate" id="sponsordate5" style="width:100px;" value="<?php echo $write['sponsordate']; ?>" class="frm_input" size="20" maxlength="50"/>
<input type="checkbox" name="sponsordate" <?php if( $write['sponsordate'] == "2층 도서관" ){?> checked <?php }?> value="10"> 의자&nbsp;&nbsp;
<input type="text" name="sponsordate" id="sponsordate5" style="width:100px;" value="<?php echo $write['sponsordate']; ?>" class="frm_input" size="20" maxlength="50"/>
<input type="checkbox" name="sponsordate" <?php if( $write['sponsordate'] == "2층 도서관" ){?> checked <?php }?> value="10"> 기타&nbsp;&nbsp;
<input type="text" name="sponsordate1" id="sponsordate5" style="width:150px;" value="<?php echo $write['sponsordate']; ?>" class="frm_input" size="20" maxlength="50"/>
</td>
</tr>
이것만 사용해도 되는건가요

아 그리고 체크박스 같은 경우에는 name 값을 다 다르게 해줘야 맞는 것인지 아님 틀리게 해줘야 맞는 것인지 모르겠어요
죄송해요
제가 잘 몰라서요
2017-10-09 (월) 13:31:56

1. 체크박스 같은 경우 통상 동일한 이름으로 처리합니다.

2. implode는 DB 입력전에 처리합니다.

3. 수정을 위해서 explode로 다시 배열로 처리해서 비교 합니다.(다른 방법들도 많긴 합니다만 우선 예시로)

4. 여분필드를 활용했습니다(wr_1). 여분필드 외 다른 필드 사용의 경우 필드생성후 DB업데이트 처리도 같이 해주어야 합니다.

다해서 대략 아래와 같은 코드가 나옵니다.

Copy
// write.skin.php(사용하는 스킨 폴더의 파일)<?php$sponsordate = explode(',',$write['wr_1']);?>.....<input type="checkbox" name="sponsordate[]" <?php if(in_array("책상", $sponsordate)) echo 'checked'; ?> value="책상"> 책상 ......// write_update.head.skin.php (사용하는 스킨폴더에 신규생성, 파일 있다면 아래소스 추가)$wr_1 = implode(',', $sponsordate);

답변에 대한 댓글 1개

정말 감사 드립니다.
이렇게 친절하게 답변 해주셔서 정말 감사 드립니다.

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