다중체크박스 선택 최소 한개 이상 선택하기 문의 드려요

머리가 아프네요.ㅠㅠ

값이 저장이 안되는데....

어떤부분이 문제일가요?  고수님들 부탁드립니다. 

write.skin.php

Copy
<?php $product = explode('|', $write['wr_8']); ?>

 <table class="table newtable">

  <tr>
   <td>
     <label class="checkbox-inline">
      <input type="checkbox" name="wr_8[]" value="1" <?php if(in_array('1', $product)) echo 'checked'; ?>> 1
     </label>
   </td>
   <td>
     <label class="checkbox-inline">
      <input type="checkbox" name="wr_8[]" value="2" <?php if(in_array('2', $product)) echo 'checked'; ?>> 2
     </label>
   </td>
   <td>
     <label class="checkbox-inline">
      <input type="checkbox" name="wr_8[]" value="3" <?php if(in_array('3', $product)) echo 'checked'; ?>> 3
     </label>
   </td>
     <td>
     <label class="checkbox-inline">
      <input type="checkbox" name="wr_8[]" value="4" <?php if(in_array('4', $product)) echo 'checked'; ?>> 4
     </label>
   </td>

</tr>

</table>

script

Copy
$("input[name='wr_8[]']").each( function () { 
            if (this.checked) { 
                flag = !flag;  
                return false; 
            } 
        }); 
    
        if (!flag) { 
            alert("상품을 하나 이상 체크해주세요."); 
            return false; 
        }

write_update.skin.php

Copy
$wr_8_r = implode('|', $_POST['wr_8']);  
    $sql8 = " update $write_table set wr_8 = '{$wr_8_r}' where wr_id = '$wr_id' ";
    sql_query($sql8);

답변 3개 / 댓글 8개

    var flag = true;
    $("input[name='wr_8[]']").each( function () { 
        if (this.checked) flag = false; 
    });     
    if (flag) { 
        alert("상품을 하나 이상 체크해주세요."); 
        return false; 
    }

답변에 대한 댓글 1개

function fwrite_submit(f) 안에 넣고 하면 알림창이 뜨긴하지만 값은 전송이 안되 고 있습니다.ㅠㅠ
2018-03-07 (수) 11:03:49

디버깅 절차를 알려드리겠습니다.

1. write_update.skin.php 파일에서 print_r2($_POST['wr_8']); 찍어보기

2. 찍어서 값이 정상적일 경우 echo $sql8 쿼리문 찍어보기

3. 쿼리문에서 에러가 날 경우 쿼리문 수정, POST값이 넘어오지 않았을 경우 write.skin.php 폼부분에 문제가 있을 것이니 확인

답변에 대한 댓글 1개

wr_8에 값이 없네요..

<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
</form>

안에 넣고 했는데...ㅠㅠ 값이 왜 전송이 안되는걸까요?
2018-03-07 (수) 11:01:46

write_update.skin.php에서

$wr_8_r = implode('|', $_POST['wr_8']);  

이 구문은  '|'를 통해서 array로 반환될텐데요...

위 구문 주석처리하고 DB상에 wr_8컬럼에 값이 들어가는지 한번 확인해보심이 좋을듯 합니다~

답변에 대한 댓글 6개

디비상에 아무값도 안들어가고 있네요....ㅠㅠ
그럼 write_update.skin.php의 $sql8 쿼리문 밑에

print_r($sql8); 추가하셔서 update시에 쿼리문 찍히는것 한번 체크해보시구요~
print_r($sql8); 소스로 쿼리문 찍히지 않는다면,
error_log($sql8);하시면
apache 에러로그에 쿼리문 찍힐겁니다~
쿼리문에 어떤 이상이 있는지 체크한번해보셔야 할것 같네요.
제가 뭔가 잘못했는지 아무런반응이 없네요...ㅜㅜ
[code]
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가


$wr_8_r = implode('|', $_POST['wr_8']);
$sql8 = " update $write_table set wr_8 = '{$wr_8_r}' where wr_id = '$wr_id' ";
print_r2($sql8);

?>
[/code]
print_r2($sql8);가 아니고
print_r($sql8); 입니다... 2빼셔야 합니다...
앗!! ^^;; 감사합니다.!!
그래도 뷰페이지로 바로 가네요.....ㅠㅠ
혹시 아파치 에러로그 확인가능하신가요?
가능하시면

error_log($sql8);하시면
확실히 찍힐겁니다~ 시도해보시길~

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