Несколько кнопок отправки в одной форме, причем обе кнопки отправки доступны в Stack Overflow

В настоящее время я работаю над страницей HTML, где я могу загрузить Excel, а также получить данные из базы данных между указанным диапазоном дат. Одна кнопка отправки выведет данные из Excel и базы данных и сравнит значение из обоих списков и покажет конфликтующие значения. Мне нужно добавить еще одну кнопку отправки, где пользователь может установить, как сопоставление должно быть сделано для конфликтующих значений в той же форме.

Как использовать две кнопки отправки одновременно с данными, опубликованными в первой кнопке отправки, доступной во второй кнопке отправки в PHP?

1

Решение

Пока кнопки отправки находятся внутри form элемент, нажав на любой из них отправит форму, в которой они размещены.

При этом все поля в одной форме будут отправлены.

Однако вы, вероятно, хотите знать, какая кнопка отправки была нажата, чтобы сделать что-то по-другому.

Можете добавить name свойство, чтобы указать, какая кнопка отправки была нажата.

<input type="submit" name="submit1">
<input type="submit" name="submit2">

Предполагая, что эта форма отправлена ​​методом POST, вы можете проверить, какая кнопка отправки была нажата, используя приведенный ниже пример.

$importData = isset($_POST["submit1"]);
$mapSettings = isset($_POST["submit2"]);

Таким образом, вы можете достичь этого, поместив все поля в разных формах в один и тот же form элемент. Все поля в элементе формы будут отправлены независимо от того, какая кнопка отправки была нажата.

Затем вы можете использовать приведенный выше логический результат, чтобы определить, что делать.

0

Другие решения

Лучший ответ, который я видел до сих пор для этой ситуации:

<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
}

Здесь есть хороший пост об этом: Две кнопки отправки в одной форме

0

По вопросам рекламы [email protected]