В веб-разработке часто встречаются ситуации, когда вам необходимо отправить форму для различных целей. Один из способов добиться этого — включить две кнопки отправки в одну форму. В этой статье мы рассмотрим несколько методов реализации этой функции с помощью PHP и предоставим вам примеры кода для каждого подхода.
Метод 1. Различение действий по имени кнопки.
Первый метод предполагает использование атрибута name
кнопок отправки, чтобы различать действия. Вот пример фрагмента кода:
<form method="post" action="process.php">
<!-- Form fields here -->
<input type="submit" name="action1" value="Action 1">
<input type="submit" name="action2" value="Action 2">
</form>
В вашем скрипте обработки PHP (process.php) вы можете проверить, какая кнопка была нажата, используя суперглобальный элемент $_POST
:
if (isset($_POST['action1'])) {
// Action 1 logic here
} elseif (isset($_POST['action2'])) {
// Action 2 logic here
}
Метод 2. Использование скрытых полей.
Другой метод предполагает использование скрытых полей для различения действий. Вот пример:
<form method="post" action="process.php">
<!-- Form fields here -->
<input type="hidden" name="action" value="action1">
<input type="submit" value="Action 1">
<input type="hidden" name="action" value="action2">
<input type="submit" value="Action 2">
</form>
В вашем скрипте обработки PHP вы можете получить доступ к выбранному действию, используя суперглобальный элемент $_POST
:
if ($_POST['action'] === 'action1') {
// Action 1 logic here
} elseif ($_POST['action'] === 'action2') {
// Action 2 logic here
}
Метод 3: использование JavaScript/jQuery.
Если вы предпочитаете решение на стороне клиента, вы можете использовать JavaScript или jQuery для обработки нажатий кнопок и динамического изменения действия формы или выполнения запросов AJAX на основе нажатой кнопки. Вот пример использования jQuery:
<form id="myForm" method="post">
<!-- Form fields here -->
<input type="submit" class="action-btn" data-action="action1" value="Action 1">
<input type="submit" class="action-btn" data-action="action2" value="Action 2">
</form>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
$('.action-btn').click(function(e) {
e.preventDefault();
var action = $(this).data('action');
$('#myForm').attr('action', 'process.php?action=' + action);
$('#myForm').submit();
});
});
</script>
В скрипте обработки PHP (process.php) вы можете получить доступ к выбранному действию через суперглобальные переменные $_GET
или $_POST
, в зависимости от того, использует ли форма GET или POST. как метод.