글쓸때 select박스
본문
글쓸때 seclect박스에
종류가 5개있다고 치면
자동으로
5개 다체크되어있게하는 방법 없나요
<?php $ex_1 = explode("|",$write['wr_9']);?>
<label for="ex1_00" class="css-label-red yap ">
<input type="checkbox" name="ex1_00" value="사과" <?php echo ($ex_1[0] == "사과") ? "checked" : "";?>>
사과
</label>
답변 8
<?php echo ($ex_1[0] == "사과") ? "checked" : "";?>>
이 부분을
<?php echo ($ex_1[0] == "사과" || $ex_1[0] == "") ? "checked" : "";?>>
이런식으로 값이 없을때도 체크 되도록 하면 되지 않을까요?
당연히 값이 없으니까 중간에 배열이 비어서 없는겁니다.
체크박스 배열을 다시 생성해야할듯 합니다.
<?php echo ($ex_1[0] == "사과") ? "checked" : "";?>
예를들어 ex_1[0]이 사과에 체크가 되있다고 가정하는데
문제는 사과를 체크안하고 오렌지를 체크하면
오렌지가 $ex_1[0]에 들어가기 때문에 체크가 안되죠.
그렇다면 차라리
checkbox 이름을 계별적으로 주시면 될듯 한데요.
<input type="checkbox" name="ex1_1" value="사과"
<input type="checkbox" name="ex1_2" value="배"
<input type="checkbox" name="ex1_3" value="오렌지"
그리고 받는 페이지에선
$ex1 = $ex1_1."|".$ex1_2."|".$ex1_3;
이렇게 받으시면 됩니다.
질문이 모호해요
SELECT box <--- 이것과
input 태그의 Checkbox는 서로 완전히 다릅니다.
그리고 ,
5개를 다 나오고 체크하게 하고 싶다 하셨는데
아래질문은
1.사과 2.오렌지 3.포도가있을경우
사과 ,포도를 선택했을때
사과,포도만 나오게 하고싶은데
라고하셨네요
원하시는게 뭘까요?
$view[wr_9] 에는 "사과|오렌지|포도||"
가 들어있나요?
$ex_1 = explode("|",$view[wr_9]);
수행후
<?php echo ($ex_1[0] == "사과") ? "checked" : "";?>>
자기값을 자기와 비교??
값이 존재하면 checkbox를 표기 하고 싶으신거면
$ex_1 = explode("|",$view[wr_9]);
$i = 0;
foreach($ex_1 => $val) {
$na = sprntf("%2d", $i);
echo "<input type='checkbox' name='ex1_'.$na value='".$val."' checked />".$val;
}
와 같이 변경해서 한번해보세요
사과,배,오렌지,키위,귤....5개일때..
$ex_1 = explode("|", $view[wr_9]);
저장이 "사과|키위|귤" <-- 형식으로 된다면..
<?php echo in_array("사과",$ex_1) ? "checked" : "";?>
저장이 "사과|||키위|귤" <-- 형식으로 된다면.
<?php echo ($ex_1[0] == "사과") ? "checked" : "";?>
$ex_1 = explode("|", $view[wr_9]); <-- 은 하신거 맞죠??
그럼
print_r($ex_1); 으로 찍어보세요;;
혹시나 해서 확인하자면..;;
<?php echo str_replace("|", ",", $view['wr_9']);?> <-- 이거만 하시고
explode 안하신건가요??;;
$ex_1 = explode("|", $view[wr_9]); <-- 이거요.. 안하신거라면.;;
<?php echo str_replace("|", ",", $view['wr_9']);?> 대신..
$ex_1 = explode("|", $view[wr_9]); 를 넣으세요;;
write.skin.php
$items = array("사과", "딸기", "배", "수박", "참외");
$wr9 = explode("|", $write['wr_9']);
foreach($items as $k) {
if($w == "u") {
$checked = in_array($k, $wr9) ? " checked" : "";
echo "<input type='checkbox' name='wr9[]' value='".$k."'".$checked." />";
} else {
echo "<input type='checkbox' name='wr9[]' value='".$k."' checked />";
}
}
write_update.skin.php
$wr9 = implode("|", $_POST['wr9']);
sql_query("UPDATE ".$write_table." SET wr_9 = '".$wr9."' WHERE wr_id = ".$wr_id);
질문 내용이 상당히 알 수 없게 되어 있네요.
댓글 보고 대충 유추를 하면 글을 쓸 때만 모든 체크박스가 다 체크되어 있고 수정 시에는 사용자가 체크한 것만 체크되면 되는 건가요?
!-->