Задать вопрос

Кто как делает html формы?

Не первый раз сталкиваюсь с формами и каждый раз они для меня как страшный сон. Речь не идет о двух полях с сабмитом. Приходится делать для проекта сложные формы с множеством полей/селекторов/чекбоксов и плюс валидация со стороны клиента и сервера. Так вот: все это до сих пор делаю руками так сказать. Без единой библиотеки - просто пишу с нуля. Занимает это массу времени и гору нервов на отладку. Ну вот не могу я поверить в то что студии которые как семечки выплевывают сайты сидят и тоже руками пишут формы. Обязан быть какой-то инструмент который позволяет собирать формы за короткий срок. Гуглил уже и видел множество фреймворков. Но хочется не напороться на очередной перегруженный фреймворк с кучей лишнего под капотом.

Как кто чем собирает? Что посоветуете что бы формы перестали быть проблемой.
  • Вопрос задан
  • 4175 просмотров
Подписаться 37 Оценить 11 комментариев
Решения вопроса 1
PretorDH
@PretorDH
HTML5, CSS3, PHP, JS - люблю в чистом виде.
Современная форма - это комплекс решений, в разных областях. И поставить один модуль который решит проблему - не возможно в принципе. Каждый специалист может собрать свою часть. Но без архитектора который скажет как это скрутить в кучу, будет велосипед с квадратными колесами - ехать можно но по специальной дороге.

  1. Разметка:
    • пишу всегда вручную;
    • длинные селекты тянутся из базы посредством шаблонизатора (например серверного TWIG);
    • прописываю полностью с атрибутами валидации HTML5 (благо все современные браузеры потдерживают);
    • выдумывать JS-велосипеды для валидации не стоит уже давно;
    • для зависимых полей пока есть простой js-клаcс сверяющий их.
    • drag&drop файлов давно уже работает без JS;
    • для подгрузки изображений в страницу на стороне клиента js-класс.

  2. Стили:
    • один раз прописаны стили для разных-форм на уровне тегов и взаимоотношений тегов (в итоге все формы на сайте виглядят в одном стиле);
    • класы только для самой формы, определяет как одна выводится: локально, модально или в теле контента;
    • кому сложно написать 300 строчек CSS, пользуйтесь фреймворками;
    • ни в коем случае не делайте стили форм для каждого раза как онные встречаются (придет дядя даст по рукам :) ).

  3. Отправка:
    • пользуйтесь action, submit и target;
    • нужны данные как модальное окно есть iframe;
    • ajax с формами не использую он изначально предназначен для другого:
      • для подгрузки полей в селектор, но только если селектор очень большой;
      • для поиска налету.


  4. Сервер:
    • использую специальный статический класс, который делает валидацию и XSS/injection-очистку;
    • как минимум PDO с подготовленными запросами;
    • Doctrine;

  5. База-данных:
    • наименования полей в базе соответствуют наименованиям полей в формах (с префиксом);

Ответ написан
Пригласить эксперта
Ответы на вопрос 11
@Atllantis
Ну не знаю, я например предпочитаю ручками писать код, да же нудный html/css. Хоть это и занимает много времени, но зато Я контролирую процесс и Я знаю что написано, как написано и легко могу всё изменить. Если же делать подобное с помощью "генераторов" и т.п., то разобраться в разметке, а тем более изменить её (в случае необходимости) может быть проблематично и затратно (по времени).
Имхо!
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
студии которые как семечки выплевывают сайты сидят

такие студии просто имеют заготовки для стандартных ситуаций
то есть если это например обратный звонок - то сopy -> paste
а если что в колекции нет - нанимают оутсорс
у них все сайты под одну гребенку, и фреймворки там редко используются, в лучшем случае какая-нибудь джумла/вордпрес
Ответ написан
Комментировать
@jaxel
Не использовать фреймфорки в 2016 году - значит говнокодить. В symfony 2/3 отличный модуль для работы с формами.
Ответ написан
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Я много, долго и упорно делал на jQuery+Vanilla JS сложные динамические формы, которые строил генератор по мета-данным.

После одного особо зубодробительного проекта, где в форме была куча нелинейных зависимостей (интеграция потоков данных для циан и внутренней CRM заказчика), когда через некоторое время зависимости нужно было изменять в виду изменившихся условий работы, я познал боль. :)

К тому же прямые манипуляции на DOM для меня стали еще большим злом.

В общем от jQuery как основного движка на фронтенде я отказался категорически, сейчас плотно изучаю React+Redux и ище с ними, предварительно проведя исследования по основным мейнстримовым фреймворкам и библиотекам для фронтенда.

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

Ну и на бэкенде до кучи решил мигрировать на Node.JS, ибо это позволяет отказаться от веб сервера как обязательного элемента-посредника между фронтендом и бэкендом, к тому же это позволяет хранить активное состояние нативно, что доставляет неимоверно.

В совокупности с ES-2015 это всё становится приятнее и интереснее.

Да, безусловно, есть там и свои проблемы, тем не менее прогресс не стоит на месте.
Ответ написан
Комментировать
Antonoff
@Antonoff
Разработчик
Ну я всю разметку почти пишу на Foundation, и копирую готовые елементы из кухни.

Когда без фреймворков, пишу руками, обычно же там 10-15 строчей, остальное копипейст
Ответ написан
Комментировать
Dit81
@Dit81
Security researcher, pentester, internet-marketer
У меня часть кода из других моих и чужих проектов. Который хорошо отлажен и функционален. Это очень сильно ускоряет разработку новых прилдожений и веб-сервисов. Пишите код универсальный, для использования в будущих проектах.
Хотя видел генераторы для ускорения и создания форм обратной связи, анкет и т.п. но сам мало ими пользовался, сложно расширять их и переделывать...
Ответ написан
Комментировать
trevoga_su
@trevoga_su
свое решение
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Все студии (я делаю так же):
1. Используют готовые модули и плагины для популярных CMS.
2. Пишут однократно свой велосипед.
Ответ написан
Все зависит от поставленной задачи.
Если нужна сложная форма с множеством зависимостей, проверок и вдобавок user friendly попробуйте knockoutjs.com. Время и усилия затраченные на изучение окупятся :)
Простые формы лучше писать руками.
Ответ написан
Комментировать
@maiskiykot
Free coder
Формы - по сути не главное. Думаю, что основное - скрипты проверок и обработки. А накидать полей на страницу - не так уж сложно. Посему имею несколько функций, которые практически не требуют допиливания в любой ситуации, ибо репарсят и отправляют любые данные.
Ответ написан
Комментировать
@Badou
В последнее время пишу на ларавеле, там есть удобная вещь - реквесты. В них отписываешь правила валидации в виде массива и инджектишь в нужный экшн нужного контроллера нужный реквест. Опять таки для генерации форм есть пакет laravelcollective/html, для верстки и фронтенд-валидации использую purecss
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы