具有多个“操作”的 HTML 表单

我正在设置一个表单,其中我需要两个“操作”(两个按钮) :

1-“提交此表格以供批准”
2-“保存此应用程序以备后用”

如何创建支持多个“操作”的 HTML 表单?

例如:

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

我需要将这两个提交选项合并到一个表单中。

我做了一些基本的研究,但无法找到一个明确的答案,是否这是可能的,和/或任何好的资源链接到一个解决方案。

先谢谢你。

251923 次浏览

正如@AliK 提到的,这可以通过查看提交按钮的值来轻松实现。

提交表单时,取消设置的变量将计算为 false。如果将两个提交按钮都设置为同一表单的一部分,则可以检查并查看设置了哪个按钮。

HTML:

<form action="handle_user.php" method="POST" />
<input type="submit" value="Save" name="save" />
<input type="submit" value="Submit for Approval" name="approve" />
</form>

PHP

if($_POST["save"]) {
//User hit the save button, handle accordingly
}
//You can do an else, but I prefer a separate statement
if($_POST["approve"]) {
//User hit the Submit for Approval button, handle accordingly
}

剪辑


如果您不想更改 PHP 设置,请尝试这样做: http://pastebin.com/j0GUF7MV
这就是@AliK 提到的 JavaScript 方法。

相关阅读:

(对我来说)让它成为下一个基础设施的最佳方式:

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

有了这个结构,您将发送与输入一个方向和无限的可能性,其余的按钮。

这个真正工作的形式,因为我正在使用百里香叶制作一张桌子,桌子里面有两个按钮在一个形式... 谢谢老兄,即使这个线程是旧的,它仍然帮助我很多!

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

这应该可以在不改变后端代码的情况下工作:

<form class="form-horizontal" action="submit_for_approval.php">
<button>Submit for Approval</button>
<button formaction="save_for_later.php">Save for Later</button>
</form>

接受的答案对我来说不起作用,因为我使用的是 Golang,而且显然默认的 Go 表单解析返回的缺失变量与空变量(作为空字符串)相同。所以你需要把它分割成不同的端点。

前端:

   <form action="act1.php" method="post">
   

<!-- Your HTML Code -->
   

<button type="submit" name="act" value="action1">Submit</button>
<button type="submit" name="act" value="action2">Save for Later</button>
</form>

在后台: < em > (act1.php)

<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$check = $_POST['act'];
if($check == "action1") {


/* Write the code of "submit_for_approval.php" Here or add the following line */
header("Location: submit_for_approval.php");


}


  

if($check == "action2") {


/* Write the code of "save_for_later.php" Here or add the following line */
header("Location: save_for_later.php");


}
}
?>