Как создать скрипт PHP, который может обрабатывать несколько форм - PullRequest
1 голос
/ 10 сентября 2011

Каждый раз, когда я создаю веб-сайт для клиента, я пишу форму HTML, а затем пишу скрипт php для обработки этих данных.Иногда формы длинные, иногда есть несколько форм - они могут запутаться.

Прежде чем я начну пытаться написать свой динамический обработчик php-форм, мне действительно нужны советы и рекомендации.

Я думал собрать все опубликованные переменные в массив для их обработки.Но тогда как я узнаю, какие значения должны быть обязательными или что они означают?

Может быть, что-то уже существует для решения этой проблемы!

Большое спасибо, Генри


Просто немного больше информации, я имею в виду php-скрипт, который достаточно гибок, чтобы работать с любой формой, созданной для него, с любым количеством входов.Я думаю, я вижу это как один файл, который находится на сервере, и несколько форм будут отправлять запросы Ajax к нему, которые он может затем удовлетворить

Ответы [ 3 ]

1 голос
/ 10 сентября 2011

Я не думаю, что вы должны использовать массивы, так как $ _POST в любом случае уже является массивом. Но как насчет соглашения об именах в вашем коде? например:

<input type="text" name="txt_username" /> //prefix txt or whatever seems fitting.

Затем используйте регулярные выражения, чтобы найти ожидаемый тип данных и действовать соответственно. Например, вы можете написать класс, который обрабатывает различные виды ввода и в зависимости от префикса в свойстве name передает данные правильной функции.

0 голосов
/ 16 сентября 2011

Я считаю, что это помогает разделять части формы, присваивая их массиву, например,

<input type="text" name="Users[username]" id="Users_username" />

Таким образом, я могу легко выбирать разделы, используя ключ массива в php, например:

$_POST['Users']; // returns username from above example
0 голосов
/ 11 сентября 2011

Измените имя кнопки отправки в соответствии с именем вашей формы.Затем в php используйте условный оператор, чтобы определить, какая форма размещена, и получите ваш php, работающий так, как вы хотели для разных форм.

что-то вроде этого

<input type="submit" name="signupform"/>

в php

if(isset($_POST['signupform']))
{
//Do this
}
elseif(isset($_POST['loginform']))
{
//do this
}

известная проблема: вам нужно будет сохранить эти имена для отправки уникальными и не должно быть никаких других для элементав любой форме, публикуемой в этом php-файле.

Вы также можете добавить скрытое поле

<input type="hidden" name='action' value='signup'/>

и затем использовать регистр переключения с клавишей $ _POST ['action'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...