Две и более кнопки submit в форме HTML. Обработка на PHP.

May 03, 2017 03:46

Случилась тут небольшая задачка, как обработать две и более кнопок submit в HTML-форме, причем желательно без помощи JS и иных ухищрений, т.е. есть, например, такая форма:



Надо выяснить (на сервере), какую кнопку нажал пользователь.

На самом деле (ну если никто не поизвращался над браузером, т.е. клиентом) в отправленном серверу запросе POST будут только параметры нажатой кнопки. Если задать каждой кнопке уникальное имя, то можно будет отследить, какая кнопка была нажата, и, соответственно, обработать это.

Создадим тестовую форму multibutton.html:

Multibutton 'Send' Test

На PasteBin

И напишем скрипт-обработчик multibutton.go.php:

Perssed button:#";

//Проверка кнопок
if (isset($_POST['button1']))
{
$buttonmessage.="1";
}

if (isset($_POST['button2']))
{
$buttonmessage.="2";
}

if (isset($_POST['button3']))
{
$buttonmessage.="3";
}

echo $buttonmessage."";
echo "Test text value: '".$_POST['testtext']."'";
echo "----- Output $_POST array: ----
";
print_r ($_POST); echo "";
echo "-------------------------------";
?>

Если в массиве $_POST будет найден элемент button1 - обрабатываем нажатие кнопки #1 (if (isset($_POST['button1']))), аналогично поступаем с другими кнопками. Текстовое поле - исключительно для теста, можно вписывать любое значение, оно будет показано пользователю.
Для наглядности выводится содержимое массива $_POST:

print_r ($_POST);

Код на PasteBin

Получим следующее:
Нажата кнопка #1:


Нажата кнопка #2:


Нажата кнопка #3:


Можно объединить создание формы и вывод результата в единый скрипт: см. код на PasteBin

Источник

Две и более submit кнопки в форме

Скачать пример

Это репост заметки из моего блога на сайте http://tolik-punkoff.com
Оригинал заметки находится здесь: http://tolik-punkoff.com/2017/05/02/dve-i-bolee-knopki-submit-v-forme-html-obrabotka-na-php/
(
Comments
|Comment on this)

#3, it, php, #2, #1

Previous post Next post
Up