В настоящее время я работаю над страницей HTML, где я могу загрузить Excel, а также получить данные из базы данных между указанным диапазоном дат. Одна кнопка отправки выведет данные из Excel и базы данных и сравнит значение из обоих списков и покажет конфликтующие значения. Мне нужно добавить еще одну кнопку отправки, где пользователь может установить, как сопоставление должно быть сделано для конфликтующих значений в той же форме.
Как использовать две кнопки отправки одновременно с данными, опубликованными в первой кнопке отправки, доступной во второй кнопке отправки в PHP?
Пока кнопки отправки находятся внутри form
элемент, нажав на любой из них отправит форму, в которой они размещены.
При этом все поля в одной форме будут отправлены.
Однако вы, вероятно, хотите знать, какая кнопка отправки была нажата, чтобы сделать что-то по-другому.
Можете добавить name
свойство, чтобы указать, какая кнопка отправки была нажата.
<input type="submit" name="submit1">
<input type="submit" name="submit2">
Предполагая, что эта форма отправлена методом POST, вы можете проверить, какая кнопка отправки была нажата, используя приведенный ниже пример.
$importData = isset($_POST["submit1"]);
$mapSettings = isset($_POST["submit2"]);
Таким образом, вы можете достичь этого, поместив все поля в разных формах в один и тот же form
элемент. Все поля в элементе формы будут отправлены независимо от того, какая кнопка отправки была нажата.
Затем вы можете использовать приведенный выше логический результат, чтобы определить, что делать.
Лучший ответ, который я видел до сих пор для этой ситуации:
<input type="submit" name="action" value="Update" />
<input type="submit" name="action" value="Delete" />
Затем в коде проверьте, чтобы сработало:
if ($_POST['action'] == 'Update') {
//action for update here
} else if ($_POST['action'] == 'Delete') {
//action for delete
} else {
//invalid action!
}
Единственная проблема в том, что вы привязываете свою логику к тексту на входе. Вы также можете дать каждому уникальное имя и просто проверить $ _POST на наличие этих входных данных:
<input type="submit" name="update_button" value="Update" />
<input type="submit" name="delete_button" value="Delete" />
И в коде:
if (isset($_POST['update_button'])) {
//update action
} else if (isset($_POST['delete_button'])) {
//delete action
} else {
//no button pressed
}
Здесь есть хороший пост об этом: Две кнопки отправки в одной форме