一个表单中的两个提交按钮

新手上路,请多包涵

我在一个表单中有两个 提交 按钮。我如何确定哪个被击中了服务器端?

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 451
2 个回答

如果你给每个人一个名字,被点击的人将像任何其他输入一样被发送。

 <input type="submit" name="button_1" value="Click me">

原文由 Greg 发布,翻译遵循 CC BY-SA 2.5 许可协议

解决方案 1:

给每个输入一个不同的值并保持相同的名称:

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

这样做的问题是您将逻辑与输入中用户可见的文本联系起来。


解决方案 2:

给每个人一个唯一的名字并检查 $_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
}

原文由 Parrots 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题