【问题标题】:Multiple submit buttons in a single form with both submit buttons accessed in PHP单个表单中的多个提交按钮,两个提交按钮都在 PHP 中访问
【发布时间】:2016-12-05 17:16:49
【问题描述】:

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

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

【问题讨论】:

  • 删除了一些多余的问号。

标签: php submit-button


【解决方案1】:

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

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

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

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

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

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

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

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

然后您可以使用上面的布尔结果来确定要做什么。

【讨论】:

    【解决方案2】:

    目前我看到的这种情况的最佳答案是:

    <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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 2014-01-31
      • 2010-10-07
      相关资源
      最近更新 更多