728x90
반응형
SMALL
평소에 서버사이드 쪽만 신경쓰다가 프론트 쪽을 만지게 되었는데, form에 대해서 새로운 사실(?) 을 알게 되었다.
처음에는 form에서 작업을 하다가 여러 체크박스를 선택하고 새로고침을 하면 이전에 체크박스가 해제되는 줄 알았다. 물론 백단에서는 form에 있던 element를 저장하고 체크했던 체크박스를 프론트에 나타나겠끔 만들었다.
다시 말해서 내 의도는 많은 체크박스들 중에서 몇 개의 체크박스를 선택하고 '검색' 버튼을 누르면 전에 선택한 체크박스는 남고, 새로고침(또는 F5)를 누르면 체크했던 체크박스가 해제를 할 수 있도록 만드려 했다.
<?php
$str = $_POST['text'];
if ($str != null){
$result = "저는 '{$str[0]}' 를 선택했어용."; }
else {
$result = "아무것도 없음...";
}
?>
<!DOCTYPE html> <html lang="ko">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>sample page</title>
</head>
<body>
<h1>Hello PHP!</h1>
<div><?php echo $result; ?></div>
<form method="post" action="./test.php">
<input type="checkbox" name="text[]" value="사과"><label>사과</label>
<input type="checkbox" name="text[]" value="바나나"><label>바나나</label>
<input type="submit">
</form>
</body>
</html>
이 코드를 작성하고 '사과' 체크박스를 선택하고 새로고침을 누르면 데이터가 초기화가 되서 '아무것도 없음' 이라고 뜨는 줄 알았는데, 그게 아니라 '사과' 라는 값이 계속 유지되는 것이다. 결국 내 의도대로 할려면 ajax를 사용 또는 새로고침 이벤트를 사용해서 구현을 하는 수밖에 없다.
아무튼 form에 대해서 공부를 좀 더 해야할 듯 싶고, 사소한 것이지만 여지껏 몰랐었기 떄문에 적어논다.
728x90
반응형
LIST
'php' 카테고리의 다른 글
[php] htmlspecialchars 쓴 후 정규표현식을 이용한 자동링크 (0) | 2018.10.31 |
---|