我的页面上有几个按钮,但我不知道如何判断哪个按钮被点击了.这是我的两个按钮的标记:
<input type="submit" id="btnSubmit" value="Save Changes" />
<input type="submit" id="btnDelete" value="Delete" />
goa*_*oat 136
使用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键来提交表单.表格也可以通过javascript提交,以及一些更模糊的方法.
重要的是要注意这个细节,否则你的用户在提交表单时会真的感到沮丧,但"没有任何反应",他们的数据会丢失,因为你的代码未能检测到表单提交,因为你没有预料到提交按钮的名称/值可能不与发布数据一起发送.
此外,上述建议也应该用于具有单个提交按钮的表单,因为您应该始终采用默认提交按钮.
我知道互联网上充满了大量的表单处理程序教程,而且几乎所有这些都只是检查提交按钮的名称和值.但是,他们只是完全错了!
Mif*_*Fox 11
在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
}
| 归档时间: | 
 | 
| 查看次数: | 129738 次 | 
| 最近记录: |