Как лучше сделать авто добавление полей в форму?

Cramac

Новичок
Как лучше сделать авто добавление полей в форму?

ВСем привет. Встала задача сделать онлайн редактор полей формы,т.е. что бы не лазить постоянно в код и не править. Сделать все это через бравзер.
Как это можно осуществить?
Форма имеет несколько обязательных полей - логин, пароль, емайл
и доп поля.

Вопрос. куда лучше писать данные из доп полей и как при обработке формы отделить доп поля от основных (это если писать данные в разные таблицы)
 

squirell

Новичок
Не надо разделять данные. Пишешь все в одну таблицу и выставляешь флаг обязательный или дополнительный. Флаг будет определяться через значение checkbox.
 

С.

Продвинутый новичок
А какая по сути разница - лазить в код или лазить в "онлайн редактор полей формы"? По времени одинаково, а онлайн редактор еще написать надо. Да и чтобы обрабатывать дополнительный реквизит все равно в код лезть придется.

А по сути лучше сделать одну универсальную форму так, чтобы ее поля формировалась на основании тех данных, которые поступили. С учетом конечно дополнительных настроечных признаков (какие поля подлежат редактированиюся, какие нет и т.п.).
 

duba

Новичок
hm..

Можно продумать такую структуру базы (приложения) так, что бы в ней сам ты и указывал какие поля какой форме принадлежат. Сложноватенько бывает получается, но крайне облегчает задачу например написания доски обьявлений :)
 

WP

^_^
Я тоже задумывался над этим. Пришел к выводу что правильно говорят, "Благими намерениями устлана дорога в ад".
Конечно можно завести таблицу с полями.
Конечно можно попытаться формализовать проверку форм, храня в базе табличку `fieldid`, `regexp`, `flag`, `error`, и брать нужные регулярки проверяя в цикле и записывать ошибки в массив. А потом поиметь кучу гемора, до последнего момента веря в то что это удобно.
Но. Полностью формализовать проверку всех форм нельзя. Т.к. мы придем к PHP-коду. Например, форма редактирования профиля у меня в двиге. Поле Текущий пароль не обязательно для заполнения если не нужно менять Пароль и/или E-Mail. Конечно можно завести флаг "needfillpassword" в таблице с полями, которое бы возвестило о необходимости ввода пароля при изменении этого поля. Но. Естественно вся универсальность теряется уже на таком простейшем примере. Поэтому мне куда проще обойтись PHP-кодом со старыми добрыми if'ами в большом количестве. Как, я думаю, и любому другому программисту (у меня получается одно поле - один-два if, чаще конечно 1).
Если делать "авто добавление полей" в сохраняемую, то встает вопрос как хранить сами данные, после их сохранения, т.е. мы добавляем поле "myfield" и нам нужно добавить колонку в таблицу, что само по себе плохой тонъ (изменение структуры БД скриптами), а если заводить ряд в таблице где хранятся данные по ID полей, то мы потеряем множество возможностей выборки да и это еще больший изврат.
Поэтому магические скрипты избавляющие от геморроя при создании форм лучше забыть, т.к. геморрой они только добавляют. Авторы обычно советуют создавать все формы только на их продуктах.
Может остаться сомнение и подумаете "а если делать авто добавление самостоятельных полей типа IM-идентификаторов, размера сисек и т.д.?". Ну допустим сделали скрипт который будет редактировать колонки таблицы, хранить в отдельной таблице регулярки как описано выше, форма будет строиться сама и т.д. Очень страдает гибкость, т.е. дизайнер не сможет разместить поля там где нужно, выделить какое-то поле подчеркиванием, и т.д. Но это полбеды, куда больше страдает гибкость когда мы эти поля будем доставать. Во-первых дизайн должен быть формализованый опять же (например, шаблон userinfo, я бы не смог разместить всё так как хочу), во-вторых выборка и т.д. Самое смешное если формализовать форму добавления полей.
Ведь ясно - программисту и дизайнеру проще добавить вручную. Это может быть полезно лишь пользователям, которым нужно работать с простой однотипной формой, например с формой Обратной связи, с её дополнительными полями. Там все элементарно уходит на почту, и никуда не сохраняется. Но опять же, я пока не видел человека который знает регулярные выражения и не способен сделать с формой что ему нужно. А если забить на проверку формы - зачем это нужно?

-~{}~ 21.08.06 06:46:

Kapacb
Это для ламеров. Нормальному программеру ничего не стоит сделать форму довольно быстро.
 
Сверху