다중체크박스 선택 최소 한개 이상 선택하기 문의 드려요
머리가 아프네요.ㅠㅠ
값이 저장이 안되는데....
어떤부분이 문제일가요? 고수님들 부탁드립니다.
write.skin.php
</p>
<p><?php $product = explode('|', $write['wr_8']); ?></p>
<p> <table class="table newtable"></p>
<p> <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></p>
<p></tr></p>
<p></table></p>
<p>
script
</p>
<p> $("input[name='wr_8[]']").each( function () {
if (this.checked) {
flag = !flag;
return false;
}
});
if (!flag) {
alert("상품을 하나 이상 체크해주세요.");
return false;
}</p>
<p>
write_update.skin.php
</p>
<p> $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);</p>
<p>
답변 3개
var flag = true; $("input[name='wr_8[]']").each( function () { if (this.checked) flag = false; }); if (flag) { alert("상품을 하나 이상 체크해주세요."); return false; }
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
디버깅 절차를 알려드리겠습니다.
1. write_update.skin.php 파일에서 print_r2($_POST['wr_8']); 찍어보기
2. 찍어서 값이 정상적일 경우 echo $sql8 쿼리문 찍어보기
3. 쿼리문에서 에러가 날 경우 쿼리문 수정, POST값이 넘어오지 않았을 경우 write.skin.php 폼부분에 문제가 있을 것이니 확인
답변에 대한 댓글 1개
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
</form>
안에 넣고 했는데...ㅠㅠ 값이 왜 전송이 안되는걸까요?
댓글을 작성하려면 로그인이 필요합니다.
write_update.skin.php에서
$wr_8_r = implode('|', $_POST['wr_8']);
이 구문은 '|'를 통해서 array로 반환될텐데요...
위 구문 주석처리하고 DB상에 wr_8컬럼에 값이 들어가는지 한번 확인해보심이 좋을듯 합니다~
답변에 대한 댓글 6개
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_r($sql8); 입니다... 2빼셔야 합니다...
그래도 뷰페이지로 바로 가네요.....ㅠㅠ
가능하시면
error_log($sql8);하시면
확실히 찍힐겁니다~ 시도해보시길~
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인