채택완료

배열 저장 관련 질문

2017-03-27 (월) 15:29:31 4,015

write.skin.php에~

<?php

$wr_16k = explode('|', $write[wr_16k]);  

?> 

<li><input type="checkbox" id="checkbox0"   name="wr_16k[]" />a</li> 

<li><input type="checkbox" id="checkbox1"  name="wr_16k[]"  />b</li>

<li><input type="checkbox" id="checkbox2"  name="wr_16k[]"  />c</li>

<li><input type="checkbox" id="checkbox3"  name="wr_16k[]"  />d</li>

<li><input type="checkbox" id="checkbox4"  name="wr_16k[]"  />e</li>

<li><input type="checkbox" id="checkbox5"  name="wr_16k[]"  />f</li>

이렇게 하고~

write_update.head.php에~
<?
$wr_16 = implode("|", $_POST[wr_16k]);
?>
이렇게 하고~

write_update.skin.php에~
<?php
$sql = " update $write_table set  wr_16 = '$wr_16' where wr_id = '$wr_id' ";
sql_query($sql);
?>
이렇게 했는데요.

만약에 write에서 체크체크를 
1,3,5째만하면
db에 들어가는 값이
on|on|on
이렇게 1,3,5번째 값만 들어갑니다 ㅠ
제가 생각한거는
클릭을 안했을때 값이 어떻게 들어가는지 모르겠는데..
만약에 클릭은 안한부분은 0이라는 값이 들어간다고하면

on|0|on|0|on
이런식으로 들어가는줄 알았는데 아니네요 ㅠㅠ

클릭안한 부분은 어떻게 값을 넣나요ㅠ


답변 2개

채택된 답변
+20 포인트

checkbox라서 체크한것만 배열에 들어가서 그런겁니다.

select box로 수정을 하시던가 radio로 변경을 해보세요

2017-03-27 (월) 16:47:53

write.skin.php

<?

$wr16 = explode("|", $write['wr_16']);

$arr = array("a", "b", "c", "d", "e", "f"); 

foreach($arr as $k => $v) {

   $chk = in_array($v, $wr16) ? " checked" : ""; 

   echo "<li><input type='checkbox' name='wr_16k[]' value='".$v."'".$chk.">".$v."</li>";

}

?>

write_update.ksin.php 

저렇게 value에 값을 넣으시면 체크한 값만 다음 페이지로 넘어갑니다.

예를 들어 a, c만 체크를 했다고 가정을 합니다.

그러면 다음 페이지에서 update에

$wr16 = implode("|", $_POST['wr_16k']);

이런 식으로 하면 체크한 값만 체크가 됩니다.

참고하시라고 올립니다. 

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