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

博客讨论了在处理HTML表单提交时的一个常见误解,即总是依赖提交按钮的名称/值来检测表单提交。文章指出,虽然大多数教程仅检查提交按钮,但实际情况可能更复杂,某些浏览器在某些情况下可能不发送提交按钮的名称/值。这可能导致用户在提交表单后数据丢失,因为代码未能正确检测到表单的提交。因此,建议在处理表单时应考虑到这些细节,以避免用户遇到"什么也没发生"的问题。
摘要由CSDN通过智能技术生成

使用类似如下的HTML表单:

使用的PHP代码如下所示:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

// Something posted

if (isset($_POST['btnDelete'])) {

// btnDelete

} else {

// Assume btnSubmit

}

}

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值