У меня есть несколько кнопок на моей странице, но я не уверен, как сказать, какой был нажат. Вот разметка для моих двух кнопок:
<input type="submit" id="btnSubmit" value="Save Changes" />
<input type="submit" id="btnDelete" value="Delete" />
В форме 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, а также с помощью некоторых других малоизвестных методов.
Важно обратить внимание на эту деталь, иначе вы действительно можете расстроить своих пользователей, когда они отправят форму, но «ничего не происходит» и их данные теряются, потому что ваш код не смог обнаружить отправку формы, потому что вы этого не сделали. предвидеть тот факт, что имя / значение кнопки отправки не может быть отправлено с данными публикации.
Кроме того, приведенный выше совет следует использовать и для форм с одной кнопкой отправки, потому что вы должны всегда предполагать, что кнопка отправки по умолчанию .
Я знаю, что в Интернете полно руководств по обработке форм, и почти все они не делают ничего, кроме проверки имени и значения кнопки отправки.Но, они просто неправы!
В 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
}
Вы спрашиваете на php или javascript.
Если он находится в php, дайте ему имя и используйте метод post или get, после этого вы можете использовать опцию isset или это конкретное имя кнопки проверяется на это значение.
Если это в js, используйте getElementById для этого