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


72

我正在设置一个需要两个“动作”(两个按钮)的表单:

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

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

例如:

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

我需要将这两个提交选项组合为一种形式。

我进行了一些基础研究,但是找不到关于是否可行和/或用于解决问题的链接的任何好的资源的明确答案。

提前致谢。


1
不是PHP的人,但是在.NET中,我可以将其发布到一个表单操作中,并通过查看表单发布数据来找出单击了哪个按钮。我假设您也许可以在php中做同样的事情。或者,您将只使用javascript更改提交的目标。
AliK

Answers:


77

如@AliK所述,这可以通过查看提交按钮的值来轻松完成。

提交表单时,未设置的变量将得出false。如果将两个提交按钮都设置为同一表单的一部分,则只需检查并查看已设置了哪个按钮即可。

HTML:

<form action =“ handle_user.php” method =“ POST” />
  <input type =“ submit” value =“保存” name =“保存” />
  <input type =“ submit” value =“提交批准” name =“ approve” />
</ form>

的PHP

if($ _ POST [“ save”]){
  //用户点击保存按钮,进行相应处理
}
//您可以执行其他操作,但我希望使用单独的语句
if($ _ POST [“ approve”]){
  //用户点击“提交批准”按钮,进行相应处理
}

编辑


如果您不想更改PHP设置,请尝试以下操作:http :
//pastebin.com/j0GUF7MV这是@AliK所引用的JavaScript方法。

有关:


嘿,我现在醒了,您+ AliK的JavaScript答案对我来说似乎很完美,谢谢!!
塞缪尔·斯蒂尔斯

24

(对我而言)使其成为下一个基础架构的最佳方法:

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

通过这种结构,您将输入一个方向以及其余按钮的无限可能性。


0

这对于我正在使用百里香做一张桌子的桌子来说真的很有效,并且桌子内部有两种形式的两个按钮...谢谢,即使这个线程很旧,它仍然对我有很大帮助!

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.