PHP에서 제출 후 체크박스 선택 값 유지하기
이제 체크박스 값을 제출한 후에도 유지되도록 만들어 봅시다. 이를 위해
$_GET['flag']가 존재하는지(즉, 폼이 제출되었는지) 그리고
'1'과 같은지(즉, 체크박스가 선택되었는지) 확인합니다.
이 두 조건이 모두 충족되면 체크박스에 checked 속성을 출력합니다:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag" <?php
if (isset($_GET['flag']) and $_GET['flag'] === '1')
echo 'checked';
?>
>
<input type="submit">
</form>
숨겨진 입력 필드가 0을 전송한다는 것을 정확히 알고 있다면 확인을 단순화할 수 있습니다.
이 경우 체크박스가 선택되지 않으면 $_GET['flag']에는 '0'이 저장되고,
아직 폼이 제출되지 않았다면 null이 저장됩니다.
이 두 경우 모두 checked를 출력해서는 안 됩니다. 그리고 이 두 경우 모두
empty 함수로 감지할 수 있습니다. 따라서
$_GET['flag']가 비어 있지 않은지 확인하고, 이 경우에만 checked를 출력할 수 있습니다:
<form action="" method="GET">
<input type="hidden" name="flag" value="0">
<input
type="checkbox"
name="flag"
value="1"
<?php if (!empty($_GET['flag'])) echo 'checked' ?>
>
<input type="submit">
</form>
제출 후에도 자신의 값을 유지하는 세 개의 체크박스를 만드세요.