为了账号安全,请及时绑定邮箱和手机立即绑定

如何知道在PHP表单提交中单击了哪个按钮?

如何知道在PHP表单提交中单击了哪个按钮?

PHP
慕哥6287543 2019-10-11 11:04:22
我的页面上有几个按钮,但是我不确定如何知道单击了哪个按钮。这是我的两个按钮的标记:<input type="submit" id="btnSubmit" value="Save Changes" /><input type="submit" id="btnDelete" value="Delete" />
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

使用类似如下的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

    }

}

您应该始终假定或默认为第一个提交按钮以HTML源代码的形式出现。实际上,在以下情况下,各种浏览器会可靠地发送带有发布数据的提交按钮的名称/值:


用户使用鼠标或定位设备从字面上单击提交按钮

或者将焦点放在“提交”按钮(它们在选项卡上)上,然后Enter按键。

存在其他提交表单的方法,并且在某些情况下,某些浏览器/版本决定不发送任何提交按钮的名称/值。例如,许多用户Enter在光标/焦点位于文本字段上时通过按键提交表单。表单也可以通过JavaScript以及其他一些晦涩的方法提交。


请务必注意此细节,否则用户提交表单时确实会让他们感到沮丧,但是“什么也没有发生”并且其数据丢失,因为您的代码无法检测到表单提交,因为您没有预料到事实提交按钮的名称/值可能不会与帖子数据一起发送。


另外,上述建议也应用于带有单个提交按钮的表单,因为您应始终假定默认的提交按钮。


我知道互联网上充斥着大量的表单处理程序教程,并且几乎所有它们都只检查提交按钮的名称和值。但是,他们只是错误的!


查看完整回答
反对 回复 2019-10-11
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

在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

}


查看完整回答
反对 回复 2019-10-11
?
绝地无双

TA贡献1946条经验 获得超4个赞

您只需将name属性赋予每个按钮即可。并且您需要解决PHP脚本中每次按下按钮的问题。但是请注意为每个按钮赋予唯一的名称。因为PHP脚本大多数时候只使用名称


<input type="submit" name="Submit_this" id="This" />


查看完整回答
反对 回复 2019-10-11
  • 3 回答
  • 0 关注
  • 1002 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信