繁体   English   中英

单个表单中的多个提交按钮,两个提交按钮都在PHP中访问

[英]Multiple submit buttons in a single form with both submit buttons accessed in PHP

目前我正在开发一个HTML页面,我可以上传Excel并在指定的日期范围内从数据库获取数据。 一个提交按钮将从excel和数据库中提取数据,并比较两个列表中的值并显示冲突的值。 我需要添加另一个提交按钮,用户可以在其中设置必须如何对同一表单中的冲突值进行映射。

如何在PHP中的第二个提交按钮中访问的第一个提交按钮中同时使用两个提交按钮?

只要提交按钮放在同一个form元素中,单击其中任何一个将提交它们所在的表单。

这样,将提交相同表单中的所有字段。

但是,您可能想知道单击了哪个提交按钮以执行不同的操作。

您可以添加name属性以指定单击了哪个提交按钮。

<input type="submit" name="submit1">
<input type="submit" name="submit2">

假设此表单是使用POST方法提交的,您可以使用下面的示例检查单击了哪个提交按钮。

$importData = isset($_POST["submit1"]);
$mapSettings = isset($_POST["submit2"]);

因此,您可以通过将不同形式的所有字段放在同一个form元素中来实现此目的。 尽管单击了提交按钮,但仍将提交表单元素中的所有字段。

然后,您可以使用上面的布尔结果来确定要执行的操作。

到目前为止,我遇到的最佳答案是:

<input type="submit" name="action" value="Update" />
<input type="submit" name="action" value="Delete" />

然后在代码中检查以查看触发的内容:

if ($_POST['action'] == 'Update') {
    //action for update here
} else if ($_POST['action'] == 'Delete') {
    //action for delete
} else {
    //invalid action!
}

唯一的问题是你将逻辑绑定到输入中的文本。 您也可以为每个人提供一个唯一的名称,并检查$ _POST是否存在该输入:

<input type="submit" name="update_button" value="Update" />
<input type="submit" name="delete_button" value="Delete" />

并在代码中:

if (isset($_POST['update_button'])) {
    //update action
} else if (isset($_POST['delete_button'])) {
    //delete action
} else {
    //no button pressed
}

这里有一个很好的帖子: 一个表单中的两个提交按钮

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM