我在一个表单中有两个 提交 按钮。我如何确定哪个被击中了服务器端?
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
解决方案 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 许可协议
2 回答1.4k 阅读✓ 已解决
2 回答841 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答838 阅读✓ 已解决
2 回答761 阅读
1 回答732 阅读✓ 已解决
2 回答1.1k 阅读
如果你给每个人一个名字,被点击的人将像任何其他输入一样被发送。