Is there a well tested and preferably mature library out there for creating forms in PHP with both client side (this is where the jQuery comes in) and server side validation?
Ideally the form would either be generated from PHP classes or written as plain HTML and parsed ala Agavi. The correct jQuery hooks would then automatically be created by the library so that the included jQuery client side validation can run.
One of the jobs I do regularly is some variation on the good old contact form and I would like to standardise this work so that I can trot out the same best practice code each time. With this in mind the HTML generated by the PHP classes should be good enough so that extra CSS hooks can be added where needed etc.
Any suggestions gratefully received.
I have been combing through and reviewing the options that I have found and that others have suggested below and at the moment I would rank the projects in the following order for quality from the small amount of testing and research I have done on all of them.
- ValidForm Builder
- HTML_QuickForm2 (if you can get the client side validation working then this should jump higher than jFormer!)
- Use Symfony! (a whole MVC framework for form rendering and validation is overkill)
I am still unconvinced by any of the options to be honest and I am left wondering why people who embark on these projects do not start with some solid and well tested components. For example I would have thought a combination of:
- jQuery Tools (client side validation, datepickers, etc)
- Symfony form component perhaps
- Perhaps with Respect Validation
Would give you a good stable base to work from and produce a nice library on top of tested components.
Also if you are interested in a library that parses your HTML rather than generating the HTML from a PHP class I have found a project called Minacl. Like the Agavi option I mentioned in the original question.
You can use ValidForm Builder. It matches perfect to your requirements: With it you can define Forms with validation rules in PHP, and it generates the Forms with jQuery and client side validation.
Feature List (taken from their site):
- the API generates XHTML Strict 1.0 compliant code.
- Field validation on the client side to minimize traffic overhead.
- Field validation on the server side to enforce validation rules and prevent tempering with the form through SQL injection.
- Client side validation displays inline to improve user satisfaction. No more annoying popups that don't really tell you anything.
- Easy creation of complex form structures.
- Completely customizable using CSS.
- Automatic creation of field summaries for form mailers in both HTML and plain text.
- it's open source and therefore completely free!