首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >单个表单中的多个提交按钮,其中两个提交按钮均可在PHP中访问

单个表单中的多个提交按钮,其中两个提交按钮均可在PHP中访问
EN

Stack Overflow用户
提问于 2016-12-06 01:16:49
回答 2查看 2.3K关注 0票数 1

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

如何同时使用两个提交按钮,同时使用PHP中第二个提交按钮访问的第一个提交按钮中发布的数据?

EN

回答 2

Stack Overflow用户

发布于 2016-12-06 16:29:32

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
<input type="submit" name="submit1">
<input type="submit" name="submit2">

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

代码语言:javascript
代码运行次数:0
运行
复制
$importData = isset($_POST["submit1"]);
$mapSettings = isset($_POST["submit2"]);

因此,您可以通过将不同形式的所有字段放到同一个form元素中来实现这一点。无论单击了哪个提交按钮,表单元素中的所有字段都将被提交。

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

票数 0
EN

Stack Overflow用户

发布于 2017-08-28 01:28:24

到目前为止,对于这种情况,我看到的最好的答案是:

代码语言:javascript
代码运行次数:0
运行
复制
<input type="submit" name="action" value="Update" />
<input type="submit" name="action" value="Delete" />

然后在代码检查中查看触发了哪一个:

代码语言:javascript
代码运行次数:0
运行
复制
if ($_POST['action'] == 'Update') {
    //action for update here
} else if ($_POST['action'] == 'Delete') {
    //action for delete
} else {
    //invalid action!
}

唯一的问题是,您将逻辑与输入中的文本绑定在一起。您还可以为每个输入指定一个唯一的名称,并只需检查$_POST中是否存在该输入:

代码语言:javascript
代码运行次数:0
运行
复制
<input type="submit" name="update_button" value="Update" />
<input type="submit" name="delete_button" value="Delete" />

在代码中:

代码语言:javascript
代码运行次数:0
运行
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40979751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档