С 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 . На практике различные браузеры надежно отправляют имя / значение кнопки отправки с данными публикации, когда:
- Пользователь буквально нажимает кнопку отправки мышью или указательным устройством
- Или есть фокус на кнопке отправки (они вкладываются в нее), а затем нажимается клавиша ввода.
Существуют и другие способы отправки формы, и некоторые браузеры / версии решают не отправлять имя / значение любой кнопки отправки в некоторых из этих ситуаций. Например, многие пользователи отправляют формы, нажимая клавишу ввода, когда курсор / фокус находится на текстовом поле. Формы также могут быть отправлены через JavaScript, а также некоторые более неясные методы.
Важно обратить внимание на эту деталь, иначе вы действительно можете расстроить своих пользователей, когда они отправляют форму, но «ничего не происходит» и их данные теряются, потому что ваш код не смог обнаружить отправку формы, потому что вы не ожидали тот факт, что имя / значение кнопки отправки не может быть отправлено с данными сообщения.
Кроме того, приведенный выше совет следует использовать и для форм с одной кнопкой отправки, поскольку всегда следует предполагать кнопкой отправки по умолчанию .
Я знаю, что в интернете полно тонкостей учебных пособий по обработчикам форм, и почти все они делают только проверку имени и значения кнопки отправки. Но, они просто неправы!