배열 값 넘기는 방법 채택완료
이전 write_update.skin에 대해 질문했는데,, 배열값의 문제로 판단되어 다시 질문 올립니다.
write.skin 에서 배열로 값을 전달합니다.
</p><p><label> </p><p><input name="wr_2[]" type="checkbox" value="아동" <?php if($condition[0]){ echo "checked=\"checked\""; }?>>
아동
</label>
<label>
<input name="wr_2[]" type="checkbox" value="장년" <?php if($condition[1]){ echo "checked=\"checked\""; }?>>
장년
</label>
write_update.skin 에서 wr_2 값을 어떻게 받아야 할까요?
$_POST[wr_2], $wr_2를 var_dump로 확인해도 값이 "Array"로 나옵니다.
제가 알기론 write에서 submit 하는 순간 DB에 값이 넣어지고, write_update에서는 입력된 값의 id에 다시 update 하는 것으로 알고 있습니다.
혹시 write_update에 사용되는 input 변수들이 write 페이지에서 넘어오는게 아닌 DB에 입력된 값을 읽어 오는 것인가요?
(그런것이라면 post 변수가 작동되지 않아야 하는데,,, Array라는 문자열이 들어가 있는게 이상하네요..)
답변 1개
name="wr_2[]" --> name="wr_2a[]" 처럼 name을 바꾸세요
그리고 처리는 write_update.skin에서 하지말고(이 화일은 삭제)
write_update.head.skin 에서 $wr_2로 변환시켜주기만 하면 update 쿼리문 필요없습니다
$wr_2 = implode("|", $wr_2a);
그런데 체크박스는 체크하지않으면 값이 넘어가지 않으므로 아래 방법으로는 안됩니다
즉 $condition = explode("|", $write[wr_2]); 이렇게 하고
<?php if($condition[0])<---이렇게 사용하는 것은 불가능 합니다
체크 부분은 아래처럼 하면 됩니다
<input name="wr_2a[]" type="checkbox" value="아동" <?php if($strpos($write[wr_2],'아동') !==false){?> checked="checked" <?}?>>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
코드가 깔끔해 졌네요...
혹 다른 초보분들이 실수하실것 같아 수정합니다. $strpos가 아닌 strpos로 사용해야 합니다.