Случилась тут небольшая задачка, как обработать две и более кнопок 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)