ФорумПрограммированиеPHP для идиотов → Одним php-скриптом обработать несколько форм

Одним php-скриптом обработать несколько форм

  • shass

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 26 октября 2009 г. 14:41

    Доброго времени суток!
    Подскажите, как можно одним php-скриптом (в данном случае add.php) обработать данные от нескольких форм?
    Т.е. имеется, скажем, 3 формы, одну из которых человек заполняет и нажимает Submit, данные передаются скрипту на обработку, а он уже определяет от какой формы были переданы данные - и вот тут у меня проблема. Может, стоит передавать какой-то идентификатор формы? (Каждой форме назначить свой идентификатор) Вот только опять же - как? Создать невидимый <input>? :) Вроде глупая идея :)
    Был у меня вариант с проверкой набора переданных переменных (т.к. сейчас для каждой формы набор разный). Но если будет 2 формы с одинаковым набором переменных, то получится запись не в ту таблицу БД.

    <h3>Добавление категории</h3>
    <form action="add.php" method="GET">
    <input size="20" name="title" /> Название<br />
    <input size="20" name="root" /> Категория-родитель<br />
    <textarea cols="20" name="txt"></textarea> Описание категории<br />
    <input type="submit" value="Добавить" />
    </form>

    <h3>Добавление статической страницы</h3>
    <form action="add.php" method="GET">
    <input size="20" name="id" /> Название (id)<br />
    <textarea cols="20" name="content"></textarea> Содержание<br />
    <input type="submit" value="Добавить" />
    </form>

    <h3>Добавление динамической страницы</h3>
    <form action="add.php" method="GET">
    <input size="20" name="header" /> Название (id)<br />
    <input size="20" name="cat" /> Категория (к какой относится)<br />
    <textarea cols="20" name="content"></textarea> Содержание<br />
    <b>И + еще 2 поля</b><br />
    <input type="submit" value="Добавить" />
    </form>
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 26 октября 2009 г. 14:48, спустя 6 минут 25 секунд

    shass, в
    <input type="submit" value="Добавить" />
    добавьте name="form1" например
    <input type="submit" value="Добавить" name="form1" />


    Ну и для каждой формы свой соответственно, а проверять так:


    <?php

    if(isset($_POST['form1'])) {

    }

    Спустя 58 сек.
    И в вашем случае не POST, а GET

    <?php
    if(isset($_GET['form1'])) {
    }
    adw/0
  • shass

    Сообщения: 6 Репутация: N Группа: Кто попало

    Spritz 26 октября 2009 г. 14:49, спустя 1 минуту 27 секунд

    Точно. Красивое и простое решение =) Спасибо! :)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 26 октября 2009 г. 22:40, спустя 7 часов 50 минут 36 секунд

    shass, пожалуйста
    adw/0
  • Fujin

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 11:08, спустя 1026 дней 12 часов 27 минут

    Приезжай ко мне на БАМ
    С чемоданом кожаным.
    А уедешь от меня
    С хуем обмороженным.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!