checkbox 다중값 가져오기

checkbox 다중값 가져오기

QA

checkbox 다중값 가져오기

본문

제가 디비에 wr_day라고 하나 만들었습니다.

f12e811665f7fc3fb5621fb18ba5cff9_1462858223_672.PNG
f12e811665f7fc3fb5621fb18ba5cff9_1462858223_6921.PNG
지금위에 소스는 write.skin.php 부분과 script 부분입니다.

f12e811665f7fc3fb5621fb18ba5cff9_1462858255_6099.PNG
이위에 소스는 view.skin 부분 입니다.

게시판에서 

view 부분에 요일:월 이런식으로 뜨기는 한데

제가 글쓰기에서 월화수 이렇게 선택해서 작성하면 

수요일만 나옵니다

월화는 안뜨고 수정누르면 눌렀던 내용 다없어지고 다시선택해도

월수금 선택하면 금요일만 출력됩니다

다중선택한부분도 다 뜨게 하고싶은데

어떻게 해야할까요???ㅠㅠㅠ

이 질문에 댓글 쓰기 :

답변 3

name은 배열로 넘기시는 게 편합니다.

<input type="checkbox" name="wr_day[]" value="월">

 

write_update.skin.php

$wrday = implode("|", $_POST['wr_day']);

sql_query("UPDATE 테이블 SET wr_day = '".$wrday."' WHERE wr_id = ".$wr_id);

 

view_skin.php

출근 가능일 : <?=str_replace("|", ", ", $view['wr_day'])?>

write_update.skin.php 부분에서
$wrday = implode("|", $_POST['wr_day']);
sql_query("UPDATE 테이블 SET wr_day = '".$wrday."' WHERE wr_id = ".$wr_id);
이두줄을 어디쪽에 써야하나요??
제가생각한 위치에 넣으면 먹질 않는거 같아요ㅠㅠ

그냥 아무 데나 넣으셔도 전혀 문제가 없습니다.
가장 상단에 넣어도 되고 하단에 넣어도 되구요.
echo "UPDATE 테이블 SET wr_day = '".$wrday."' WHERE wr_id = ".$wr_id;
혹시 몰라서 그러는데 '테이블' 이걸 그대로 적으신 건 아니죠?


이걸로 바꿔 넣으세요.
$wrday = implode("|", $_POST['wr_day']);
sql_query("UPDATE ".$write_table." SET wr_day = '".$wrday."' WHERE wr_id = ".$wr_id);

일단 본문을 기준으로 대충 생각을 해보면...

 

name을 wr_day[]로 하시고..

 

php에서

<?
$str="";  

 for($i=0; $i<sizeof($wr_day); $i++) {
  $str.= $wr_day[$i]."|"; 

}

$sql="update *******, wr_day='$str'  ***** ";

mysq_query($sql);

?>

이런식으로 '|'구분해서 sql문에서 입력을 해야할것같습니다.

 

그리고

view에서는

<?

$aaa=explode("|",$view[wr_day]);

?>

구분자'|'를 이용해서  배열을 만들구요.

 

<input type='checkbox' name='wr_day[]' <?if($aaa[0]=='월' echo "checkecd";?> value='월' >

<input type='checkbox' name='wr_day[]' <?if($aaa[1]=='화' echo "checkecd";?> value='화' >

<input type='checkbox' name='wr_day[]' <?if($aaa[2]=='수' echo "checkecd";?> value='수' >

<input type='checkbox' name='wr_day[]' <?if($aaa[3]=='목' echo "checkecd";?> value='목' >

<input type='checkbox' name='wr_day[]' <?if($aaa[4]=='금' echo "checkecd";?> value='금' >

 

이렇게 넣으면 되지않을까 생각합니다.

일단.지금의 생각은 이렇습니다. 오타나 약간 손볼때는 있을수있겠으나

전체적으로는 이런식으로 들어갈거같네요...

참고만하세요..^^

근데 갑자기 헤깔리는 부분이 있긴하군요..^^
name을 wr_day[]로도 해보시고 그냥 wr_day로도 해보세요...
wr_day로 해도 되었던것같은데...말이죠..^^
지금은.솔직히 긴가민가 하네요.

현재 스킨을 따로 만드시고 계시죠?
/skin/board/보드스킨/이라고 하면...
write_update.head.skin.php파일 하나 만드십시요..

글을 쓰면.../bbs/write_update.php 가 처리파일인데요..
그파일안에 보면
스킨내에  write_update.head.skin.php 파일을 include 하도록 되어있습니다.
그러니 원소스는 건드리지 마시고
그냥 스킨폴더아래에  위파일을 만들어서.이용하십시요.
view라고 한부분은
스킨의 view.skin.php 상단에 적용을 해보심 될겁니다..

댓글내용중에 하나 빠드린게 있네요..
좀 정확하게 말씀을 드려야할것같군요..
write_update.head.skin.php
파일에는...
$str=""; 
 for($i=0; $i<sizeof($wr_day); $i++) {
  $str.= $wr_day[$i]."|";
}
이부분입니다..
아래에..
sql부분은....

write_update.tail.skin.php 이라고 하나 또 만드셔서.

$sql="update {$write_table} set
        wr_day='$str'
      where wr_id='$wr_id' ";
sql_query($sql);

이런식으로 해야할것같습니다.

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

회원로그인

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