А какие методы разработки больших веб-форм стоит использовать?
Доброго дня.
Есть форма, полей около 300, в 10-12 разделах. Сейчас сделано одним большим с обработкой простым php скриптом и сохранением в файл. Хочется навести порядок, а опыта разработки совсем мало.
Варианты я вижу вот какие:
1. Подключить к использованию что-то из Angular, Backbone и т. п. фреймворков (сейчас вся логика и UI формы работает на jQuery + пара плагинов) для работы с данными на клиенте
2. Разбить визуально форму на количество разделов (10-12 штук со статусом заполнения, типа 4/12) и кнопками "Далее" и "Назад"
3. Хранить данные локально, а после нажатия финального сабмита – отправить данные на Backend
4. На Backend проверка и сохранение в одну большую строку со всеми полями
Пункт 3 рассматриваю еще возможность отправки каждой порции данных на сервер (с сохранением в браузере, если юзер вернется назад), каждую в свою таблицу, чтоб в случае чего иметь возможность предлагать со временем юзеру варианты заполненых блоков (есть потребность вроде бы и выглядит на бумаге аккуратно).
Соответственно пункт 4 получается многоразовый, отправка данных каждого блока проверяется сначала JS на Frontend, потом на Backend и записывается в базу с привязкой к ID юзера.
На сколько понимаю, с блоками правильнее отталкиваться от таблицы анкет, с перечислением ключей используемых блоков? Тогда получается, что блоки будут привязаны к юзеру, как и анкеты, а анкеты в свою очередь будут (могут) использовать блоки юзера.
Собственно вопрос, прав ли я в своих рассуждениях? Есть ли что-то, на что стоит обратить особое внимание?
Может почитать чего перед началом :) только просьба, если отсылаете к теории – конкретизируйте. Пробелов в знаниях достаточно, это я знаю, но возможности садиться и с нуля все изучать нет возможности пока. Будем в бою учиться.
1. Поля нужно проверять ДО отправки куда либо. Хотябы на начальном уровне (регулярки,тип,кол-во символов)
2. Отправлять лучше массивом сразу всю форму и затем ее парсить уже сриптом с проверкой.
Кстати, для больших форм я использовал когда то плагин: AjaxForm