php 입문 | form 전송 기본 | 기타 양식용 요소(element)을 사용


이제 양식 사용의 기본이 알았으니 다른 요소(element)에 대해서도 사용법을 살펴 보자.

양식은 입력 필드 외에도 “체크박스”, “라디오 버튼”. “리스트”, “텍스트 영역”, ‘‘암호 필드"라는 것이 있다. 텍스트 영역 또는 암호 필드는 이전 입력 필드와 마찬가지로 “텍스트를 써 보내는” 것이므로 사용법은 알 수 있다 (단, 보내져 온 문자를 받을 뿐이기 때문에).

그럼 체크 박스나 라디오 버튼 등은 일체 어떻게 값을 전달하는 것인가에 대해 실제로 시험해 보도록 하자.

아래 체크 박스, 두개의 라디오 버튼, 3개의 항목이 있는 리스트를 표시한 양식 예제를 보도록 하자.

<?php
    if ($_POST != null){
        $ck1 =$_POST['check1'];
        $rd1 = $_POST['radio1'];
        $sl1 = $_POST['list1'];
        $result = "CHECKBOX: {$ck1}\nRADIOBUTTON: {$rd1}\nSELECT: {$sl1}";
    } else {
        $result = "입력하십시오.";
    }
?>
<!DOCTYPE html>
<html lang="ko">
    <head> 
        <meta http-equiv="Content-Type"
            content="text/html; charset=UTF-8" /> 
        <title>sample page</title>
    </head>
    <body>
        <h1>Hello PHP!</h1>
        <pre><?php
            echo  htmlspecialchars($result);
        ?></pre>
        <form method="post" action="./index.php">
            <input type="checkbox" name="check1">체크 박스<br>
            <input type="radio" name="radio1" value="1번 선택">라디오 박스1<br>
            <input type="radio" name="radio1" value="2번 선택">라디오 박스2<br>
            <select name="list1">
                <option value="Windows">Windows</option>
                <option value="Mac OS">Mac OS</option>
                <option value="Linux">Linux</option>
            </select>
            <input type="submit">
        </form>
    </body>
</html>

이것을 실제로 움직여 각각의 값이 어떻게 전달되는지를 알아 보자.

체크 박스

이것은 체크가 ON이라면 “on"이라는 값을 보내온다. 그럼 체크가 OFF라면? 이는 아무것도 보내지 않는다. 즉, 빈값이다.

라디오 버튼

이는 선택된 라디오 버튼의 value가 보내진다. value가 설정되어 있지 않으면 체크 박스와 마찬가지로, 단지 “on"이라는 값이 들어오는 뿐이다. 이것에는 “어떤 라디오 버튼이 선택되어 있는지"를 모르기 때문에 반드시 value를 작성해 하도록 한다.

또한, 어떤 라디오 버튼이 선택되지 않은 경우 체크 박스처럼 아무것도 보내지 않는다.

리스트

<select>는 콤보 박스처럼 표시하거나 일람 리스트와 같이 표시를 할 수 있지만, 송진되는 오는 값은 모두 동일한다. 선택된 <option>의 value가 보내지게 된다. 만약 value가 설정되어 있지 않으면, <option>~</option> 사이에 기술된 텍스트가 전송된다.

또한, 아무것도 선택되어 있지 않으면 역시 아무것도 보내지 않는다.