it-swarm.com.de

Wie kann ich ein POST Formular mit dem <a href="..."> Tag einreichen?

Wie kann ich ein POST Formular an showMessage.jsp Senden, indem ich nur das <a href="..."> Tag verwende?

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

Kein JavaScript erforderlich, wenn Sie stattdessen eine Schaltfläche verwenden:

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

Sie können einen Button so gestalten, dass er wie ein Link aussieht , zum Beispiel:

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

Sie müssen Javascript submit für Ihr form Objekt verwenden. Schauen Sie sich auch andere an Funktionen .

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

Sie benötigen dazu Javascript.

<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>
34
naveed

Wenn Sie MVC verwenden, um dies zu erreichen, müssen Sie so etwas tun

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

Ich habe hier nur einige Beispiele durchgesehen und nicht gesehen, dass die MVC dachte, es würde nicht schaden, sie zu posten.

Dann würde ich bei Ihrer Aktion im Controller einfach <HTTPPost> Oben drauf setzen. Ich glaube, wenn Sie nicht <HTTPGET> Oben drauf haben, würde es immer noch funktionieren, aber es fühlt sich ein bisschen sicherer an, wenn Sie es explizit dort platzieren.

3

Es scheint wirklich keine Möglichkeit zu geben, den <a href= .. In eine POST) - Methode zu verwandeln. Da Sie jedoch Zugriff auf CSS einer Seite haben, kann dies durch die Verwendung eines Formulars ersetzt werden .

Leider ist die offensichtliche Art, die Schaltfläche in CSS nur als Ankertag zu formatieren, nicht browserübergreifend kompatibel, da verschiedene Browser <button value= ... Unterschiedlich behandeln.

Incorrect:

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

Das obige Beispiel zeigt "Zwei" und "Senden" -Parameter: Eins "in FireFox, während" Eins "und" Senden "-Parameter: Eins in IE8 angezeigt werden.

Der Weg dahin ist, versteckte Eingabefelder für die Übermittlung von Daten zu verwenden und die Schaltfläche nur für die Übermittlung.

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

Beachten Sie, dass diese Methode einen Nebeneffekt hat, der neben 'parameter: blaah' auch 'delete: Delete' als überschüssige Parameter im POST liefert.

Sie möchten für eine Schaltfläche das Wertattribut und die Schaltflächenbezeichnung zwischen den beiden Tags beibehalten (in diesem Fall 'Löschen'), da (wie oben angegeben) in einigen Browsern eine und in einigen Browsern eine andere als Schaltflächenbezeichnung angezeigt wird.

0
Laid