目前我在一个HTML页面上工作,在那里我可以上传Excel,也可以从数据库中获取指定日期范围内的数据。一个提交按钮将从excel和数据库中调出数据,并比较这两个列表中的值,并显示冲突的值。我需要添加另一个提交按钮,用户可以在其中设置必须如何为同一表单中的冲突值进行映射。
如何同时使用两个提交按钮,同时使用PHP中第二个提交按钮访问的第一个提交按钮中发布的数据?
发布于 2016-12-06 08:29:32
只要submit按钮被放在同一个form
元素中,单击其中任何一个按钮都会提交它们所在的表单。
这样,同一表单中的所有字段都将被提交。
但是,您可能想知道单击了哪个submit按钮来执行不同的操作。
您可以添加name
属性来指定单击了哪个提交按钮。
<input type="submit" name="submit1">
<input type="submit" name="submit2">
假设此表单是使用POST方法提交的,您可以使用下面的示例检查单击了哪个提交按钮。
$importData = isset($_POST["submit1"]);
$mapSettings = isset($_POST["submit2"]);
因此,您可以通过将不同形式的所有字段放到同一个form
元素中来实现这一点。无论单击了哪个提交按钮,表单元素中的所有字段都将被提交。
然后,您可以使用上面的布尔结果来确定要执行的操作。
发布于 2017-08-27 17:28:24
到目前为止,对于这种情况,我看到的最好的答案是:
<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
https://stackoverflow.com/questions/40979751
复制