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>동작 방식 설명
위 예제에서 주목할 점은 다음과 같습니다.
- 폼 자체에는
method="get"이 설정되어 있으므로, 일반적인 Submit 버튼을 누르면 GET 방식으로/new.php에 데이터가 전달됩니다. - 두 번째 버튼에는
formmethod="post"가 지정되어 있어, 이 버튼으로 제출하면 폼의 기본 방식과 무관하게 POST 방식이 적용됩니다. - 동시에
formaction="/new2.php"가 지정되어 있어 전송 목적지도/new2.php로 변경됩니다.
이처럼 formmethod 속성을 활용하면 하나의 폼에서 상황에 따라 조회용 요청(GET)과 저장·처리용 요청(POST)을 유연하게 구분할 수 있어, 검색 화면과 등록 처리를 함께 구현해야 하는 경우에 특히 유용합니다.