Intereting Posts
Проблемы с синхронизацией сети, вызывающие PHP, «не удалось открыть поток: нет такого файла или каталога» Как сохранить вложения электронной почты в php? Как конвертировать Comma Seperated Column в строки и добавить счетчик Magento multi-currency с несколькими магазинами веб-страница викторины проверила все ответы изменить значение через 24 часа fwrite не пишет Как проверить, существует ли файл на внешнем сервере symfony2 добавить динамический параметр для маршрутизации, попробуйте с помощью пользовательского загрузчика Обнаружение типа изображения из строки base64 в PHP QuickAppend существующие zip-файлы в zip-файл – на PHP Автоматическое заполнение текстового поля в зависимости от значения Drop Down Всегда ли определена переменная сервера HTTP_HOST? CakePHP: Как я буду маршрутизировать все отсутствующие вызовы контроллера / действия на одну общую страницу ошибок? Как удалить расширение из строки (только реальное расширение!)

Доступна библиотека создания и проверки форм и jQuery?

Оригинальный вопрос

Существует ли хорошо протестированная и, возможно, зрелая библиотека, для создания форм в PHP с обеих сторон клиента (сюда входит jQuery) и проверки на стороне сервера?

В идеале форма будет либо генерироваться из классов PHP, либо написана как простой HTML и проанализирована ala Agavi . Правильные jQuery-крючки будут автоматически создаваться библиотекой, чтобы можно было выполнить проверку на стороне клиента jQuery.

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

Любые предложения с благодарностью получили.


Обновить

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

  1. ValidForm Builder
  2. jFormer
  3. HTML_QuickForm2 (если вы можете получить валидацию на стороне клиента, то это должно прыгать выше jFormer!)
  4. PHP-форм-строитель-класс
  5. Используйте Symfony! (вся структура MVC для визуализации и проверки формы является излишним)

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

  • Проверка на стороне клиента Parsley.js
  • Возможно, компонент формы Symfony
  • Возможно, с помощью проверки достоверности

Это даст вам хорошую стабильную базу для работы и создания хорошей библиотеки поверх тестируемых компонентов.

Также, если вас интересует библиотека, которая анализирует ваш HTML, а не генерирует HTML из класса PHP, я нашел проект под названием Minacl . Как вариант Агави, я упомянул в оригинальном вопросе.

Solutions Collecting From Web of "Доступна библиотека создания и проверки форм и jQuery?"

Вы можете использовать ValidForm Builder . Он соответствует вашим требованиям: с его помощью вы можете определить Forms с правилами проверки в PHP и генерировать формы с помощью проверки jQuery и стороны клиента.

Список функций (взятых со своего сайта):

  • API генерирует XHTML Strict 1.0 совместимый код.
  • Проверка поля на стороне клиента для минимизации накладных расходов.
  • Проверка поля на стороне сервера для обеспечения соблюдения правил проверки и предотвращения закалки с помощью формы посредством SQL-инъекции.
  • Проверка валидации на стороне клиента отображает встроенную линию, чтобы повысить удовлетворенность пользователей. Больше никаких раздражающих всплывающих окон, которые на самом деле ничего не говорят.
  • Простое создание сложных форм-структур.
  • Использует популярную библиотеку jQuery Javascript для манипуляций с DOM.
  • Полностью настраивается с помощью CSS.
  • Автоматическое создание сводок полей для почтовых форм формы как в HTML, так и в обычном тексте.
  • Это открытый исходный код и, следовательно, совершенно бесплатный ( вот репозиторий GitHub )!

ОБНОВЛЕНО на 2017 год

Agile UI представляет собой библиотеку компонентов PHP UI (и преемника atk4.3), включая такие вещи, как:

Все компоненты имеют последовательный и простой интерфейс PHP:

$form = new \atk4\ui\Form(); $layout->add($form); $form->setModel(new Country($db)); 

Если вы предпочитаете CRUD, просто используйте \atk4\ui\CRUD . Agile UI также предлагает инструменты для добавления пользовательских компонентов.

введите описание изображения здесь

Сравнение с альтернативным программным обеспечением:

  • Выводит HTML для формы $form->render() или для всего веб-приложения.
  • Автоматический стиль с семантическим интерфейсом
  • Проверка на стороне сервера отображает ошибки inline.
  • Макеты форм
  • Включает интерфейс поддержки jQuery.
  • Сохраняет данные через Agile Data , SQL, NoSQL
  • Поддержка пользовательских шаблонов HTML
  • Открытый и лицензированный под MIT

Вариант, с которым я столкнулся, – jFormer , но у него очень короткая история, и PHP-код менее желателен с массивным 3000-линейным файлом, полным нескольких классов. Он не требует модульного подхода.

В чем конкретно проблемы с проверкой на стороне клиента в HTML_QuickForm2 ?

Для работы нужен файл quickform.js . Файл устанавливается вместе с пакетом, но не включается автоматически в выходной файл формы. Недавно я обновил документы, чтобы сделать эту проблему более очевидной.

Также у QF2 было несколько выпусков с вашего вопроса, несколько JS-связанных ошибок были раздавлены. Подумайте о том, чтобы дать ему еще одну попытку: мы нацелены на стабильный выпуск Really Soon Now и будем любить отзывы.

Просматривая репозиторий PEAR сегодня, я заметил, что HTML_QuickForm2 выпустил новую версию, которая теперь поддерживает проверку на стороне клиента. Он не использует jQuery, хотя они написали собственную структуру JS для работы.

Возможно, вы можете использовать структуру Symfony . Он обеспечивает уровень Model-View-Controller и автоматическое формирование формы из модели. Существует множество вариантов проверки. Но я думаю, что есть некоторые модификации, необходимые для интеграции проверки на стороне клиента JQuery.

Я просто наткнулся на плагин jQuery, называемый jquery-ahm . Он перемещает логику проверки на сервер, но выполняет ее на клиенте с помощью JavaScript. В нижней части страницы вы видите пример проверки формы.

Разметка HTML:

 <form id="form" action="/a.form" method="post" class="ahm"> <p>Name</p> <input name="name" id="name" value="" type="text"> <p>Email</p> <input name="email" id="email" value="" type="text"> <p>Password</p> <input name="password" id="password" value="" type="text"> <br><input value="Submit Form" type="submit"> </form> 

PHP-код:

 <?php // catch errors foreach (array("name", "email", "password") as $key) { if (empty($_POST[$key])) { $error["#$key/addClass"] = "error"; $error["#$key/after"] = "<span class="error">Please enter $key</span>"; } } // get response if (!empty($error)) { $reset["input.error/removeClass"] = "error"; $reset["span.error/remove"] = ""; $response = $reset + $error; // reset errors before applying new ones } else { $response["#form/replaceWith"] = "<strong>Form successfully submitted</strong>"; } // return response return $response; ?> 

Результат:

Выход формы