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