Với một dạng HTML như:
<input type="submit" name="btnSubmit" value="Save Changes" />
<input type="submit" name="btnDelete" value="Delete" />
Mã PHP để sử dụng sẽ giống như sau:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['btnDelete'])) {
} else {
}
}
Bạn nên luôn giả định hoặc mặc định nút gửi đầu tiên xuất hiện dưới dạng mã nguồn HTML . Trên thực tế, các trình duyệt khác nhau gửi tên / giá trị của nút gửi cùng với dữ liệu bài đăng một cách đáng tin cậy khi:
- Người dùng thực sự nhấp vào nút gửi bằng chuột hoặc thiết bị trỏ
- Hoặc có tiêu điểm trên nút gửi (họ gắn thẻ vào đó), và sau đó Enterphím được nhấn.
Các cách khác để gửi biểu mẫu tồn tại và một số trình duyệt / phiên bản quyết định không gửi tên / giá trị của bất kỳ nút gửi nào trong một số trường hợp này. Ví dụ: nhiều người dùng gửi biểu mẫu bằng cách nhấn Enterphím khi con trỏ / tiêu điểm nằm trên trường văn bản. Biểu mẫu cũng có thể được gửi qua JavaScript, cũng như một số phương pháp khó hiểu hơn.
Điều quan trọng là phải chú ý đến chi tiết này, nếu không, bạn có thể thực sự khiến người dùng của mình thất vọng khi họ gửi biểu mẫu, nhưng "không có gì xảy ra" và dữ liệu của họ bị mất, vì mã của bạn không phát hiện được biểu mẫu gửi, vì bạn không lường trước được sự thật rằng tên / giá trị của nút gửi có thể không được gửi cùng với dữ liệu bài đăng.
Ngoài ra, lời khuyên ở trên cũng nên được sử dụng cho các biểu mẫu có một nút gửi duy nhất vì bạn luôn phải giả định là nút gửi mặc định .
Tôi biết rằng Internet có rất nhiều hướng dẫn về trình xử lý biểu mẫu và hầu hết chúng không làm gì khác hơn là kiểm tra tên và giá trị của nút gửi. Nhưng, họ chỉ sai rõ ràng!