Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML formmethod 속성 완벽 정리: 폼 전송 방식을 버튼별로 지정하는 방법

formmethod 속성이란?

HTML의 formmethod 속성은 폼 데이터를 서버로 전송할 때 사용할 HTTP 방식(GET 또는 POST)을 지정하는 속성입니다. 이 속성은 <input type="submit"> 또는 <input type="image"> 요소에서만 사용할 수 있으며, 지정된 경우 <form> 태그에 설정된 method 속성보다 우선적으로 적용됩니다.

즉, 하나의 폼 안에서도 제출 버튼마다 서로 다른 전송 방식을 사용할 수 있다는 것이 가장 큰 장점입니다. 예를 들어 기본 폼은 GET 방식으로 동작하되, 특정 버튼만 POST 방식으로 데이터를 보내도록 설정할 수 있습니다.

주요 특징

  • 적용 대상: type="submit", type="image" 입력 요소
  • 우선순위: 폼의 method 속성을 덮어써서(override) 적용됨
  • 주요 값: get, post
  • 함께 사용하는 속성: formaction과 조합하면 전송 방식과 전송 대상 페이지를 모두 변경할 수 있음

사용 예제

아래 코드는 formmethod 속성을 활용하는 방법을 보여줍니다. 첫 번째 제출 버튼은 폼의 기본 설정인 GET 방식으로 /new.php에 데이터를 전송하고, 두 번째 버튼은 formmethod="post"formaction="/new2.php"가 지정되어 있어 POST 방식으로 다른 페이지에 데이터를 전송합니다.

<!DOCTYPE html>
<html>
    <head>
        <title>HTML formmethod 속성 예제</title>
    </head>
    <body>
        <form action="/new.php" method="get">
            학생 이름<br><input type="text" name="name"/><br>
            학생 과목<br><input type="text" name="subject"/><br>
            <input type="submit" value="Submit">
            <input type="submit" formmethod="post" formaction="/new2.php" value="Submit">
        </form>
    </body>
</html>

동작 방식 설명

위 예제에서 주목할 점은 다음과 같습니다.

  1. 폼 자체에는 method="get"이 설정되어 있으므로, 일반적인 Submit 버튼을 누르면 GET 방식으로 /new.php에 데이터가 전달됩니다.
  2. 두 번째 버튼에는 formmethod="post"가 지정되어 있어, 이 버튼으로 제출하면 폼의 기본 방식과 무관하게 POST 방식이 적용됩니다.
  3. 동시에 formaction="/new2.php"가 지정되어 있어 전송 목적지도 /new2.php로 변경됩니다.

이처럼 formmethod 속성을 활용하면 하나의 폼에서 상황에 따라 조회용 요청(GET)과 저장·처리용 요청(POST)을 유연하게 구분할 수 있어, 검색 화면과 등록 처리를 함께 구현해야 하는 경우에 특히 유용합니다.