HTML-Formular mit mehreren "Aktionen"

71

Ich richte ein Formular ein, in dem ich zwei "Aktionen" (zwei Schaltflächen) benötige:

1 - "Senden Sie dieses Formular zur Genehmigung"
2 - "Speichern Sie diesen Antrag für später"

Wie erstelle ich ein HTML-Formular, das mehrere "Aktionen" unterstützt?

Z.B:

<form class="form-horizontal" action="submit_for_approval.php">
<form class="form-horizontal" action="save_for_later.php">

Ich muss diese beiden Optionen zum Einreichen in einem Formular kombinieren.

Ich habe einige Grundlagenrecherchen durchgeführt, konnte jedoch keine endgültige Antwort darauf finden, ob dies möglich ist oder nicht, und / oder keine guten Ressourcen für Links zur Problemumgehung.

Danke im Voraus.

Samuel Stiles
quelle
1
Kein PHP-Typ, aber in .NET kann ich einfach in einer Formularaktion posten und herausfinden, auf welche Schaltfläche geklickt wurde, indem ich mir die Formularpostdaten ansehe. Ich gehe davon aus, dass Sie in PHP möglicherweise dasselbe tun können. Alternativ würden Sie einfach Javascript verwenden, um das Ziel der Übermittlung zu ändern.
AliK

Antworten:

77

Wie bei @AliK erwähnt, kann dies einfach durch Betrachten des Werts der Senden-Schaltflächen erfolgen.

Wenn Sie ein Formular senden, werden nicht gesetzte Variablen als falsch ausgewertet. Wenn Sie festlegen, dass beide Senden-Schaltflächen Teil desselben Formulars sind, können Sie einfach überprüfen, welche Schaltfläche festgelegt wurde.

HTML:

<form action = "handle_user.php" method = "POST" />
  <input type = "submit" value = "Save" name = "save" />
  <input type = "submit" value = "Zur Genehmigung einreichen" name = "genehmigen" />
</ form>

PHP

if ($ _ POST ["save"]) {
  // Benutzer auf die Schaltfläche Speichern klicken, entsprechend behandeln
}}
// Du kannst ein anderes machen, aber ich bevorzuge eine separate Anweisung
if ($ _ POST ["genehmigen"]) {
  // Benutzer klickt auf die Schaltfläche Zur Genehmigung einreichen, entsprechend behandeln
}}

BEARBEITEN


Wenn Sie Ihr PHP-Setup lieber nicht ändern möchten , versuchen Sie Folgendes : http://pastebin.com/j0GUF7MV
Dies ist die JavaScript-Methode, auf die @AliK verwiesen hat.

Verbunden:

isaacparrot
quelle
Hey, ich bin jetzt wach und die JavaScript-Antwort von + AliK scheint perfekt für mich zu sein, danke !!
Samuel Stiles
24

Der beste Weg (für mich), es zu schaffen, ist die nächste Infrastruktur:

<form method="POST">
<input type="submit" formaction="default_url_when_press_enter" style="visibility: hidden; display: none;">
<!-- all your inputs -->
<input><input><input>
<!-- all your inputs -->
<button formaction="action1">Action1</button>
<button formaction="action2">Action2</button>
<input type="submit" value="Default Action">
</form>

Mit dieser Struktur senden Sie mit Eingabe eine Richtung und die unendlichen Möglichkeiten für den Rest der Schaltflächen.

Robert Blasco Villarroya
quelle
0

Diese wirklich funktionierende Form, denn ich mache einen Tisch mit Thymeleaf und in der Tabelle gibt es zwei Knöpfe in einer Form ... danke Mann, auch dieser Thread ist alt, es hilft mir immer noch sehr!

<th:block th:each="infos : ${infos}">
<tr>
<form method="POST">
<td><input class="admin" type="text" name="firstName" id="firstName" th:value="${infos.firstName}"/></td>
<td><input class="admin" type="text" name="lastName" id="lastName" th:value="${infos.lastName}"/></td>
<td><input class="admin" type="email" name="email" id="email" th:value="${infos.email}"/></td>
<td><input class="admin" type="text" name="passWord" id="passWord" th:value="${infos.passWord}"/></td>
<td><input class="admin" type="date" name="birthDate" id="birthDate" th:value="${infos.birthDate}"/></td>
<td>
<select class="admin" name="gender" id="gender">
<option><label th:text="${infos.gender}"></label></option>
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</td>
<td><select class="admin" name="status" id="status">
<option><label th:text="${infos.status}"></label></option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</td>
<td><select class="admin" name="ustatus" id="ustatus">
<option><label th:text="${infos.ustatus}"></label></option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
</td>
<td><select class="admin" name="type" id="type">
<option><label th:text="${infos.type}"></label></option>
<option value="Yes">Yes</option>
<option value="No">No</option>
</select></td>
<td><input class="register" id="mobileNumber" type="text" th:value="${infos.mobileNumber}" name="mobileNumber" onkeypress="return isNumberKey(event)" maxlength="11"/></td>
<td><input class="table" type="submit" id="submit" name="submit" value="Upd" Style="color: white; background-color:navy; border-color: black;" th:formaction="@{/updates}"/></td>
<td><input class="table" type="submit" id="submit" name="submit" value="Del" Style="color: white; background-color:navy; border-color: black;" th:formaction="@{/delete}"/></td>
</form>
</tr>
</th:block>

Rj Acain
quelle