다중 체크박스 배열 값 받기 질문

다중 체크박스 배열 값 받기 질문

QA

다중 체크박스 배열 값 받기 질문

본문

안녕하세요.

체크박스를 여러개 선택해서 전송시 배열로 값을 받으려고 했는데

잘 안되서 질문드려봅니다.

 

 

 

name이랑 $를 wr_4로 하면 array가 뜨고


name이랑 $를 check1으로 변경하면 값이 오긴하는데
게시판에 테이블 안쪽이 아닌 바깥쪽에 출력이 됩니다ㅠㅠ

그래서

<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo ($view['wr_content']); ?></div>

이 부분의 내부에 check1을 직접 추가하려 했는데

어떻게 추가해야되는지 몰라서 못했습니다.

 

 

 

그리고 게시판만 사용할거라서

gnuboard/mobile/skin/board/(사용스킨)

루트로 연결하여 여기서만 거의 코딩을 수정했는데

다른데도 수정해야할까요?

 

 

 

인터넷으로 찾아서 거의 전부다 해봤는데 코드를 잘못쓴건지 뭔지 잘 안됐습니다
완전 초보자여서 며칠째 헤매고 있네요..
고수님들 도와주시면 감사하겠습니다!

 

 

 


(write.skin.php)

 

<tr>
      <td class="name_wrap">
            <label class="name_title" for="wr_4">전공/학원수강여부</label>
      </td>
      <td class="check_wrap1" colspan="4">

            <?php $wr_4 = explode(",", $write['wr_4']); ?>

            <input type="checkbox" name="wr_4[]" id="wr_4_1" value="전공"<?php echo in_array("전공", $wr_4) ? ' checked="checked"' : '' ?> class="required">
            <label for="wr_4_1" style="padding-inline: 10px;">전공</label>
                            
            <input type="checkbox" name="wr_4[]" id="wr_4_2" value="비전공"<?php echo in_array("비전공", $wr_4) ? ' checked="checked"' : '' ?> class="required">
            <label for="wr_4_2" style="padding-inline: 10px;">비전공</label>
                            
            <input type="checkbox" name="wr_4[]" id="wr_4_3" value="타학원수강"<?php echo in_array("타학원수강", $wr_4) ? ' checked="checked"' : '' ?>  class="required">
            <label for="wr_4_3" style="padding-inline: 10px;">타학원수강</label>
       </td>
</tr>

 

 


------------------

 

 


(write_update.skin.php)

 

$wr_4 = implode(',', $_POST['wr_4']);
sql_query("update $write_table set wr_4 = '$wr_4' where wr_id = '$wr_id' ");

 

 


------------------

 

 


(view.skin.php)

 

<section id="bo_v_atc">
        <h2 id="bo_v_atc_title">본문</h2>
        <!-- 본문 내용 시작 { -->
        <div id="bo_v_con"><?php echo ($view['wr_content']); ?></div>
        <?php //echo $view['rich_content']; // view_image($view, '0', '') 과 같은 코드를 사용할 경우 ?>

 

        <!--다중체크박스-->
        <?php echo $view['wr_4']; ?>

 

         <span class="bo_v_tit">
        <!-- } 본문 내용 끝 -->
</section>

 

↓↓↓↓↓↓

 

2039299835_1688955785.6189.png

 

 

 

 

 

 

 

 

check1으로 했을때


(write.skin.php)

<tr>
      <td class="name_wrap">
            <label class="name_title" for="wr_4">전공/학원수강여부</label>
      </td>
      <td class="check_wrap1" colspan="4">

            <?php $check1 = explode(",", $write['wr_4']); ?>

            <input type="checkbox" name="check1[]" id="wr_4_1" value="전공"<?php echo in_array("전공", $check1) ? ' checked="checked"' : '' ?> class="required">
            <label for="wr_4_1" style="padding-inline: 10px;">전공</label>
                            
            <input type="checkbox" name="check1[]" id="wr_4_2" value="비전공"<?php echo in_array("비전공", $check1) ? ' checked="checked"' : '' ?> class="required">
            <label for="wr_4_2" style="padding-inline: 10px;">비전공</label>
                            
            <input type="checkbox" name="check1[]" id="wr_4_3" value="타학원수강"<?php echo in_array("타학원수강", $check1) ? ' checked="checked"' : '' ?>  class="required">
            <label for="wr_4_3" style="padding-inline: 10px;">타학원수강</label>
       </td>
</tr>

 

 


------------------

 

 


(write_update.skin.php)

$wr_4 = implode(',', $_POST['check1']);
sql_query("update $write_table set wr_4 = '$wr_4' where wr_id = '$wr_id' ");

 

 


------------------

 

 


(view.skin.php)

<section id="bo_v_atc">
        <h2 id="bo_v_atc_title">본문</h2>
        <!-- 본문 내용 시작 { -->
        <div id="bo_v_con"><?php echo ($view['wr_content']); ?></div>
        <?php //echo $view['rich_content']; // view_image($view, '0', '') 과 같은 코드를 사용할 경우 ?>

 

        <!--다중체크박스-->
        <?php echo $view['wr_4']; ?>

 

         <span class="bo_v_tit">
        <!-- } 본문 내용 끝 -->
</section>

 

↓↓↓↓↓↓

 

2039299835_1688955867.8308.png

 

코드 참고 출처 : https://eond.com/gnuboard/435215

이 질문에 댓글 쓰기 :

답변 2

아래  check1 방법으로 해야 배열 넘길수 있고, 문제점은 아래 출력 내용이 칸이 안 맞는다는 문의 같으신데

<?php echo $view['wr_4']; ?> 이걸 감싸주는 레이아웃이 없습니다.

 

<td>전공/학원수강여부</td> 이렇게 있을것으로 예상이 되는데

그 옆에 <td><?php echo $view['wr_4']; ?></td>

 

이렇게 해주시면 되실겁니다.

답변 감사합니다

<td>전공/학원수강여부</td> 이 부분이

<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo ($view['wr_content']); ?></div>
이 안에 있는 듯 한데 이게 어디와 연결되어 있는건지를 못 찾겠습니다..

해결했습니다!

<!-- 본문 내용 시작 { -->
<div id="bo_v_con"><?php echo ($view['wr_content']); ?></div> 이 부분 지우고
<td>전공/학원수강여부</td>.... 내용들을 만들어서 처음 말씀하신대로
그 옆에 <td><?php echo $view['wr_4']; ?></td>연결하니 됐습니다.

감사합니다^^

write_update.skin.php 말고 write_update.head.skin.php 에 아래코드만 넣어보세요.

$wr_4 = implode(',', $_POST['wr_4']);

따로 sql_query로 업데이트 안하셔도 됩니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 253
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT