Можно ли просто указать действие всех форм на один URL-адрес и разделить их с помощью input_hidden, например form_id?
например, мы создаем URL-адрес, как: / процесс
и указать все формы на этот URL, и там мы разделяем формы скрытым счетчиком
На самом деле в этом нет никакого вреда, но если вы создадите разные файлы, это будет намного проще для понимания каждым. Создание разных файлов и их вызов сделает ваш код более чистым.
Нет, это не мудро. Разделяйте несвязанные функции по разным файлам и вызывайте их, чтобы было легче увидеть, где что находится. Много маленьких файлов> Один огромный файл.
Несколько, как правило, в порядке, но только если у вас много разных форм на одной странице и вы не используете Ajax для их отправки. Вы можете поддерживать порядок в чистоте, присваивая имена форм и помещая их в каждое поле с таким именем, чтобы вы знали, какая форма была отправлена.
В этом случае это часто необходимо, чтобы уменьшить объем работы, необходимой для загрузки ошибок проверки формы, в то время как обычно необходимо сохранять ошибки в сеансе для перезагрузки после перенаправления со страницы обработки.
Пример:
-> contact.php
-> Submit to contact.php
-> If errors, re-render the form without redirect on contact.php
-> Else, process the form, then redirect.
В случае ошибок второе отображение формы будет частью запроса POST, а это означает, что у вас все еще будет легкий доступ к ранее представленным данным.
Если они действительны, опубликованные данные вам больше не нужны, поскольку вы уже сохранили их в других местах.
Это очень контекстно, однако. Это не причина использовать один скрипт для обработки «всех» ваших форм. Только те, что на активной странице.
Вообще нет.
Но есть случаи, когда желательно это сделать, по крайней мере, для некоторых форм. Но эти формы должны реализовывать один и тот же интерфейс, их поведение одинаково.
Например, у меня есть один случай использования, когда кнопки размещаются на странице, каждый загружает свою форму в модальном режиме. Каждый отправляется на один и тот же контроллер, но все, что нужно знать контроллеру, это то, что он вызывает validate()
, save()
, а также render()
методы на форме.
Я уверен, что есть и другие случаи, но ваша общая позиция должна быть «нет», если у вас есть веская причина для этого.