미래는 지금 현재 우리가 무엇을 하고 있는가에 달려 있다. 채택완료
반갑습니다. 그누x쵸딩입니다.
바로 질문들어갈게요~ ㅎ
쓰기에서 체크박스를 배열로 했습니다.
<input type="checkbox" name="<?php echo 'extra'.$i;?>" id="extra<?=$i?>" class="css-checkbox2" value="extra" <? if ($extra[$i] == 'extra') echo "checked";?> />
그래서 업데이트에서
for($h=0;$h <10; $h++) {
if ($h > 0) $extra .= "|";
$extra .= $_POST['extra'.$h];
}
요렇게 해서 잘되는데요...
그런데 만지작거리다가 사고가 터졌습니다..ㅜㅜㅜ
쓰기를 동적추가로 바꾸다 보니..
이제 업데이트코드가 부적절해졌다는 것입니다.
h<10까지 나오게 했는데
동적추가폼으로 바꾸다보니 h<10으로 고정된 것은
안맞는 상황이 발생했다는 것입니다..흑흑
이런때는 어떻게 해야 하는지 도움좀 부탁드립니다.
계속 질문해서 죄송한데...
실력이 안되는 x쵸딩이다보니..
qa나 인터넷 뒤져도 이해도 어렵고
부득이 질문올립니다.
답변 1개
html
<input type="checkbox" name="extra[]" id="extra<?=$i?>" class="css-checkbox2" value="extra" <? if ($extra[$i] == 'extra') echo "checked";?> />
php
$extra = implode("|", $_POST['extra']);
답변에 대한 댓글 8개
$ext = explode("|", $extra);
for($i = 0; $i < count($ext); $i++) {
$checked = $ext[$i] == "extra" ? " checked" : "";
echo "<input type='checkbox' name='extra[]' id='extra".$i."' class='css-checkbox2' value='extra'".$checked.">";
}
$extra가 어떤 값을 읽어오는지 모르겠지만 저 부분을 저장된 값으로 교체하시면 됩니다.
<input type="checkbox" name="extra[]" id="extra<?=$i?>" class="css-checkbox2" value="○" <? if ($extra[$i] == '○') echo "checked";?> style="width:40%"/>
원래코드가 벨류를 기호로 이런데요..
알려주신 반복문이 동적추가하기 위한 바깥의 for문하고 충돌나서
겹치기 않게 k로 바꿨더니 체크박스가 안나타납니다..흑흑
<?
$ext = explode("|", $extra);
for($k = 0; $k < count($ext); $k++) {
$checked = $ext[$k] == "extra" ? " checked" : "";
echo "<input type='checkbox' name='extra[]' id='extra".$k."' class='css-checkbox2' style='width:40%' value='extra'".$checked.">";
}
?>
$checked = $ext[$k] == "○" ? " checked" : "";
echo "<input type='checkbox' name='extra[]' id='extra".$k."' class='css-checkbox2' style='width:40%' value='○'".$checked.">";
}
<? if ($extra[$i] == '○') echo "checked";?>
원래 이렇게 되엇던건데..
php안에 넣으면서 value='○'".$checked." 이부분 때문에 안나타는거 같습니다.
<? if ($extra[$i] == '○') echo "checked";?>
이 코드는 나와야 할 이유가 없습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인