여분필드 쪼개서 사용했을때 체크박스 풀림현상 정보
여분필드 쪼개서 사용했을때 체크박스 풀림현상첨부파일
본문
if ($w == "u") {
$wr_body_11 = explode("|",substr($write[wr_11], 1));
$wr_body_12 = explode("|",substr($write[wr_12], 1));
$wr_body_13 = explode("|",substr($write[wr_13], 1));
$wr_body_14 = explode("|",substr($write[wr_14], 1));
$wr_body_15 = explode("|",substr($write[wr_15], 1));
$wr_body_16 = explode("|",substr($write[wr_16], 1));
}
이런식으로 write.skin.php 상단에 넣어주고
아래처럼 체크박스를 넣었는데요, 어떻게 수정을 해도 자꾸 체크한게 풀리네요.
뭐가 문제일까요?
(현재 글쓴이가 추가버튼을 누르면 여분필드가 $k만큼 계속 생기는식으로 게시판을 만들고 있습니다.)
<input type="checkbox" name=wr_body_12[] value='1' <? if ('$wr_body_12[]' == '1') echo "checked"; ?>>
<input type="checkbox" name=wr_body_13[] value='1' <? if('$wr_body_13[]' == 1) echo "checked"; ?>>
<input type="checkbox" name=wr_body_14[] value='1' <? if('$wr_body_14[]' == 1) echo "checked"; ?>>
<input type="checkbox" name=wr_body_15[] value='1' <? if('$wr_body_15[]' == 1) echo "checked"; ?>>
<input type="checkbox" name=wr_body_16[] value='1' <? if('$wr_body_16[]' == 1) echo "checked"; ?>>
<? if('$write[$k][wr_body_16]' == 1) echo "checked"; ?>나
<? if('$wr_body_16[$k]' == 1) echo "checked"; ?> 이렇게도 넣어봤는데 계속 풀리네요..;
파일 첨부합니다.
고수님들 부탁드려요ㅠㅠ
$wr_body_11 = explode("|",substr($write[wr_11], 1));
$wr_body_12 = explode("|",substr($write[wr_12], 1));
$wr_body_13 = explode("|",substr($write[wr_13], 1));
$wr_body_14 = explode("|",substr($write[wr_14], 1));
$wr_body_15 = explode("|",substr($write[wr_15], 1));
$wr_body_16 = explode("|",substr($write[wr_16], 1));
}
이런식으로 write.skin.php 상단에 넣어주고
아래처럼 체크박스를 넣었는데요, 어떻게 수정을 해도 자꾸 체크한게 풀리네요.
뭐가 문제일까요?
(현재 글쓴이가 추가버튼을 누르면 여분필드가 $k만큼 계속 생기는식으로 게시판을 만들고 있습니다.)
<input type="checkbox" name=wr_body_12[] value='1' <? if ('$wr_body_12[]' == '1') echo "checked"; ?>>
<input type="checkbox" name=wr_body_13[] value='1' <? if('$wr_body_13[]' == 1) echo "checked"; ?>>
<input type="checkbox" name=wr_body_14[] value='1' <? if('$wr_body_14[]' == 1) echo "checked"; ?>>
<input type="checkbox" name=wr_body_15[] value='1' <? if('$wr_body_15[]' == 1) echo "checked"; ?>>
<input type="checkbox" name=wr_body_16[] value='1' <? if('$wr_body_16[]' == 1) echo "checked"; ?>>
<? if('$write[$k][wr_body_16]' == 1) echo "checked"; ?>나
<? if('$wr_body_16[$k]' == 1) echo "checked"; ?> 이렇게도 넣어봤는데 계속 풀리네요..;
파일 첨부합니다.
고수님들 부탁드려요ㅠㅠ
댓글 전체
이렇게 한번 하나만 우선 해보셔유 출리나 안불리나유
<input type="checkbox" name=wr_body_12[] value='<?=$wr_body_12[$i]?>' echo "checked"; ?>
<input type="checkbox" name=wr_body_12[] value='<?=$wr_body_12[$i]?>' echo "checked"; ?>

우선 먼저 값이 잘 나오는지 부터 확인셔야할뜻합니다. 배렬방식 사용은 틀린것 같지 않는데...

체크박스 값은 배열형태로 안 넘어갈꺼예요. 무슨 이야기냐 하면 체크가 안되었을 때 아예 값 자체가 없기 때문에 이후 체크값이 앞 배열 자리값을 차지해 버려요. 체크되면 1, 체크 안되면 0 이 아니라... 그래서 체크안한 곳에 체크되어 나타나게 됩니다.
if ('$wr_body_12[]' == '1') <-- 표현식 자체가 틀렸습니다
if( $wr_body_12[0]==1)
if( $wr_body_12[1] ==1) 처럼 사용해야합니다
그리고 작은 따옴표 속에 변수를 쓰면 값이 비교되는 것이 아니라 따옴표속의 문자가 그대로 사용 됩니다
즉 $wr_body_12[] 라는 문자열과 1 을 비교 하게 됩니다
if( $wr_body_12[0]==1)
if( $wr_body_12[1] ==1) 처럼 사용해야합니다
그리고 작은 따옴표 속에 변수를 쓰면 값이 비교되는 것이 아니라 따옴표속의 문자가 그대로 사용 됩니다
즉 $wr_body_12[] 라는 문자열과 1 을 비교 하게 됩니다