Как обрабатывать множественные формы, используя одну страницу с функциями?

1

Таким образом, вы можете включить, например, functions.php в свой файл, а затем вы можете использовать разные функции на этой странице для проверки ввода пользователя.

Но как я могу обрабатывать несколько форм с использованием одного и того же файла?

Пример:

include formprocessor.php

formprocessor будет содержать все функции, связанные с каждой формой:

Form A action=formAfunction()
Form B action=formBfunction()
Form C action=formCfunction()

Может ли formprocessor.php содержать функцию, специально предназначенную для обработки каждой формы? Каждая форма будет иметь свою собственную функцию для обработки своих данных.

Если это возможно, это более удобно, чем наличие файла процессора для каждой формы на сайте. 10 форм 10 файлов обработки?

Или 10 форм 1 файл обработки.

Теги:
forms
function

3 ответа

0

Имейте скрытый процесс внутри вашей формы. IE

<form id = "login" action = "calls.php" method = "POST">
<input id="process" name="process" type="hidden" value="loginpr">
<input type="submit">
</form>
<form id = "logout" action = "calls.php" method= "POST">
<input id="process" name="process" type="hidden" value="logoutpr">
<input type="submit>
</form>

Тогда у вас есть ваш файл call.php, который переключается на основе вызванного процесса.

if(isset($_POST['process'])){
       switch($_POST['process']) {
               case 'loginpr':
               loginfunction();
               break;
               case 'logoutpr':
               logoutfunction();
               break;
       }
    }
else { echo "The process is not linked within this form"; }

calls.php будет вашим файлом formproccessor.php

0

Вы можете добавить имя к кнопке отправки для каждой формы в html

<form method='post' ... >
   ....
   <input type='submit' name='formA' ...>
</form>

<form method='post' ... >
   ....
   <input type='submit' name='formB' ...>
</form>

Затем используйте что-то вроде этого в вашем PHP-коде для его обработки:

if(isset($_POST['formA'])){
   formAfunction(); //handle formA
}elseif(isset($_POST['formB'])){
   formBfunction(); //handle formB
} //.... etc
0

Вы можете увидеть тип ввода = скрытый, который содержит имя для каждой формы, затем в вашем процессоре формы, прочитайте имя, которое было отправлено, и перейдите к определенной части кода соответственно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню