猿问

一个表单中的两个提交按钮

一个表单中的两个提交按钮

我有两个提交表格中的按钮。我怎么确定哪个被服务器端击中了?



子衿沉夜
浏览 1187回答 3
3回答

杨魅力

如果您给每个人一个名称,单击的一个将作为任何其他输入发送通过。<input&nbsp;type="submit"&nbsp;name="button_1"&nbsp;value="Click&nbsp;me">

白衣非少年

您可以为每个输入提供不同的值,并保持相同的名称:<input&nbsp;type="submit"&nbsp;name="action"&nbsp;value="Update"&nbsp;/><input&nbsp;type="submit"&nbsp;name="action"&nbsp;value="Delete"&nbsp;/>然后在代码检查中查看哪个触发了:if&nbsp;($_POST['action']&nbsp;==&nbsp;'Update')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//action&nbsp;for&nbsp;update&nbsp;here}&nbsp;else&nbsp;if&nbsp;($_POST['action']&nbsp;==&nbsp;'Delete')&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//action&nbsp;for&nbsp;delete}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//invalid&nbsp;action!}唯一的问题是,您将逻辑与输入中的文本绑定在一起。您还可以为每个用户指定一个惟一的名称,只需检查$_post是否存在该输入:<input&nbsp;type="submit"&nbsp;name="update_button"&nbsp;value="Update"&nbsp;/><input&nbsp;type="submit"&nbsp;name="delete_button"&nbsp;value="Delete"&nbsp;/>在守则中:if&nbsp;(isset($_POST['update_button']))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//update&nbsp;action}&nbsp;else&nbsp;if&nbsp;(isset($_POST['delete_button']))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//delete&nbsp;action}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//no&nbsp;button&nbsp;pressed}

富国沪深

更好的解决方案包括使用按钮标记提交表单:<form> &nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;<button&nbsp;type="submit"&nbsp;name="action"&nbsp;value="update">Update</button> &nbsp;&nbsp;&nbsp;&nbsp;<button&nbsp;type="submit"&nbsp;name="action"&nbsp;value="delete">Delete</button></form>这种方式不会给国际化和多种显示语言带来不便(在前一种解决方案中,按钮的标签也是发送给服务器的值)。
随时随地看视频慕课网APP
我要回答