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

时间:2016-12-05 17:16:49

标签: php submit-button

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

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

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

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

答案 1 :(得分:0)

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

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

这里有一篇很好的帖子:Two submit buttons in one form