Вернуться на страницу трюков

Формы: 2 кнопки - 2 разных события

Рассмотрим такое явление, как в одной форме 2 кнопки. Целью является обработка события в зависимости от нажатой кнопки.
<form method="post" action="">
<input type="text" name="text">
<input type="submit" name="button1">
<input type="submit" name="button2">
</form>
На самом деле не зачем разбивать каждый из обработчиков в отдельные файлы, достаточно поместить условие и проверить какая из кнопок была нажата. Смотрим файл-обработчик:
<?php
if(isset($_POST['button1'])) {
    echo 'Нажата была кнопка с именем button1';
} elseif(isset($_POST['button2'])) {
    echo 'Нажата была кнопка с именем button2';
}
Что мы в итоге получаем: форма отправляет почти все данные в следующий файл, кроме данных о кнопках, вместо этого посылает лишь данные одной кнопки, которая была нажата.
Если уж принципиально надо разделить скрипты-обработчики, то достаточно поместить такого вида router (по модели MVC):
<?php
if(isset($_POST['button1'])) {
    include './script1.php';
} elseif(isset($_POST['button2'])) {
    include './script2.php';
}
Главная БАЗОВЫЙ КУРС ПЕРВЫЙ УРОВЕНЬ программирования ВТОРОЙ УРОВЕНЬ верстки ВТОРОЙ УРОВЕНЬ программирования Начать обучение Запуск проекта Мелкие трюки Делимся практикой трудоустройства Проверь свои знания Задачи по PHP MySQL Блог Отзывы