如何判断在PHP表单提交中点击了哪个button?

我的页面上有几个button,但我不知道如何判断哪个button被点击。 这是我的两个button的标记:

<input type="submit" id="btnSubmit" value="Save Changes" /> <input type="submit" id="btnDelete" value="Delete" /> 

有了像这样的html表单:

 <input type="submit" name="btnSubmit" value="Save Changes" /> <input type="submit" name="btnDelete" value="Delete" /> 

使用的php代码如下所示:

 if ($_SERVER['REQUEST_METHOD'] === 'POST') { //something posted if (isset($_POST['btnDelete'])) { // btnDelete } else { //assume btnSubmit } } 

您应该始终假设或默认第一个提交button出现在HTML源代码的forms 。 实际上,在以下情况下,各种浏览器可靠地发送提交button的名称/值和发布数据:

  1. 用户从字面上用鼠标或定位设备点击提交button
  2. 或者关注提交button(他们标签),然后按下回车键。

还有其他提交表单的方式,有些浏览器/版本在这些情况下决定不发送任何提交button的名称/值 。 例如,当光标/焦点位于文本字段上时, 许多用户通过按Enter键提交表单。 表单也可以通过javascript提交,还有一些比较模糊的方法。

注意这些细节非常重要,否则在提交表单时,用户可能会感到挫败,但“没有任何反应”,而且由于代码未能检测到表单提交,数据丢失。

此外,上面的build议也应该用于单个提交button的表单,因为你应该总是假定一个默认的提交button。

我知道互联网上充满了大量的表单处理程序教程,几乎所有的function都不过是检查提交button的名称和值。 但是, 他们是错的!

在HTML中:

 <input type="submit" id="btnSubmit" name="btnSubmit" value="Save Changes" /> <input type="submit" id="btnDelete" name="btnDelete" value="Delete" /> 

在PHP中:

 if (isset($_POST["btnSubmit"])){ // "Save Changes" clicked } else if (isset($_POST["btnDelete"])){ // "Delete" clicked } 

你问在PHP或JavaScript。

如果是在php中,给它的名称,并使用post或get方法,之后,您可以使用isset的选项或特定的button名称被检查到该值。

如果它在js中,请使用getElementById