programing tip

태그를

itbloger 2020. 10. 29. 07:52
반응형

태그를 사용하여 POST 양식을 제출하려면 어떻게해야 합니까?


태그 showMessage.jsp만 사용하여 POST 양식을 제출하려면 어떻게해야 <a href="...">합니까?

<form action="showMessage.jsp" method="post">
    <a href="showMessage.jsp"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>

대신 버튼을 사용하는 경우 JavaScript가 필요하지 않습니다.

<form action="your_url" method="post">
    <button type="submit" name="your_name" value="your_value" class="btn-link">Go</button>
</form>

링크처럼 보이도록 버튼 스타일을 지정할 수 있습니다 . 예를 들면 다음과 같습니다.

.btn-link {
    border: none;
    outline: none;
    background: none;
    cursor: pointer;
    color: #0000EE;
    padding: 0;
    text-decoration: underline;
    font-family: inherit;
    font-size: inherit;
}

객체 submit자바 스크립트 기능 을 사용해야 form합니다. 다른 기능을 살펴보십시오 .

<form action="showMessage.jsp" method="post">
    <a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>

이를 위해 자바 스크립트를 사용해야합니다.

<form id="form1" action="showMessage.jsp" method="post">
    <a href="javascript:;" onclick="document.getElementById('form1').submit();"><%=n%></a>
    <input type="hidden" name="mess" value=<%=n%>/>
</form>

MVC를 사용하여 수행하는 경우 다음과 같이해야합니다.

 <form action="/ControllerName/ActionName" method="post">
        <a href="javascript:;" onclick="parentNode.submit();"><%=n%></a>
        <input type="hidden" name="mess" value=<%=n%>/>
    </form>

나는 단지 여기에 몇 가지 예를 살펴 보았고 그것을 게시하는 것이 아프지 않을 것이라고 생각한 MVC를 보지 못했습니다.

그런 다음 컨트롤러의 액션에서 <HTTPPost>맨 위에 놓을 것입니다. 나는 당신이 <HTTPGET>그 위에 있지 않으면 여전히 작동하지만 명시 적으로 거기에 두는 것이 조금 더 안전하다고 생각합니다.


실제로 <a href= ..POST 메서드로 속일 방법이없는 것 같습니다 . 그러나 페이지의 CSS에 대한 액세스 권한이있는 경우 대신 양식을 사용하여 대체 할 수 있습니다.

안타깝게도 CSS에서 버튼을 앵커 태그로 스타일링하는 명백한 방법은 브라우저 간 호환이되지 않습니다 <button value= .... 브라우저 마다 다르게 취급하기 때문입니다.

Incorrect:

<form action='actbusy.php' method='post'>
  <button type='submit' name='parameter' value='One'>Two</button>
</form>

위의 예제는 FireFox에서 'Two'를 표시하고 'parameter : One'을 전송하는 반면, IE8에서는 'One'을 표시하고 'parameter : One'도 전송합니다.

방법은 데이터를 전달하기 위해 숨겨진 입력 필드를 사용하고 제출하기 위해 버튼을 사용하는 것입니다.

<form action='actbusy.php' method='post'>
   <input class=hidden name='parameter' value='blaah'>
   <button type='submit' name='delete' value='Delete'>Delete</button>
</form>

이 메서드는 'parameter : blaah'외에도 POST에서 잉여 매개 변수로 'delete : Delete'를 제공하는 부작용이 있습니다.

(위에서 언급했듯이) 일부 브라우저는 하나를 표시하고 일부는 버튼 레이블로 표시하기 때문에 버튼에 대해 값 속성과 태그 사이의 버튼 레이블을 동일하게 유지하려고합니다 (이 경우 '삭제').

참고 URL : https://stackoverflow.com/questions/8169027/how-can-i-submit-a-post-form-using-the-a-href-tag

반응형