'phpJSvForm' : qu'est-ce que c'est ?
Cette section du site présente 'phpJSvForm' : une classe PHP couplé à un script JS-dynamique sous licence GNU GPL v3 qui simplifie la création des formulaires validés par un javascript côté client et vérifié par le serveur après soumission.
Les exemples proposés sur ces pages sont accessibles en deux versions : avec et sans Javascript pour permettre à chacun de comprendre ce qu'apporte les scripts JS.
Le source de cet outil est téléchargable sur CodeS-SourceS à cette adresse :
http://www.codes-sources.com/codes/PHPJSVFORM-CLASSES-PHP-JAVASCRIPTS-CREER-FACILEMENT-FORMULAIRE_52187.aspx
J'utilise 'phpJSvForm' au sein d'un projet de plus grande envergure
'gst@ges²'. Ainsi, pour des exemples d'utilisation concrets,
vous pouvez étudier ce projet...
Le début de ce projet étant antérieur à la création de 'phpJSvForm', certains formulaires
(en particulier, les formulaires de recherche) n'utilisent pas (actuellement) ce script.
(dernière mise à jour : 25/08/2011)
Javascript non-intrusif, bonnes pratiques
Je ne suis pas un spécialiste du codage JS, mais j'ai
essayé de respecter les pratiques du "Javascript non intrusif" pour que
les formulaires créés soient accessibles même si javascript est
désactivé.
Quelques articles sur le sujet
- POMPAGE : Javascript non-intrusif, chapitre 1 : le grand nettoyage !
- POMPAGE : Javascript non-intrusif, chapitre 5 : un exemple de formulaire amélioré en Javascript
- OpenWeb : Faire un menu dynamique ouvert et accessible
- OpenWeb : Bien valider ses formulaires avec Javascript
- OpenWeb : Utilisation des formulaires (X)HTML
'eval' is EVIL
On pourra me reprocher, sans doute, à juste titre, l'utilisation de la fonction 'eval', tant pis ... Pour supprimer cet usage, il me faudrait probablement reprendre l'analyse et abandonner une partie de mes choix...
Personnellement, je n'ai pas assez approfondi la question pour pouvoir évaluer les dangers de cet emploi.
Je retiendrai cet avis.
Comme j’ai pu aussi le lire, eval() n’est pas aussi machiavélique que l’on veut bien le dire. Il convient juste de s’en servir avec parcimonie et à bon escient. D’après mes lectures, il convient de fuir eval() dès lorsqu’il s’agit d’évaluer du code potentiellement transmis par un tiers malveillant et qui puisse porter atteinte au serveur web. [loicaigon.blog]
- theodoreb : Bonnes pratiques javascript, Bannir eval()
- Blog à l'avricot : Is Eval Evil ? SetTimeOut & co
CalendarPopup
L'outil proposé ici, intègre CalendarPopup, un script écrit par Matt
Kruse. Dès qu'un champ de saisie d'une date est présent dans le
formulaire, un lien 'Calendrier' est ajouté... Un clic sur ce lien, un
calendrier apparait pour faciliter la saisie de la date.
PHP
Le code PHP est basé autour de plusieurs classes. Grâce à ces classes, il suffit de quelques lignes pour construire un formulaire complexe...
Ces classes PHP s'inspirent du code proposé par Nicolas BEAUDROT (Galip) sur CodeS-SourceS.
Krumo
Krumo est une librairie PHP5, qui permet l'utilisation de la fonction krumo(), alternative aux fonctions de debug var_dump() et print_r().
Cette librairie est utilisée au sein de ces pages pour améliorer leur confort d'utilisation. Cependant, volontairement, elle n'a pas été intégrée aux sources proposées au téléchargement.
Plus d'info...
CSS, la mise en forme
La mise en page du formulaire est obtenu en pur CSS (à l'exception d'une personnalisation de la largeur des champs), en suivant les conseils de cet article : Un formulaire en pur CSS (jeudi 29 juin 2006 par Alexandra).
5 mises en page sont proposées, elles peuvent être mixées sur une même page.
- Pas de mise en page particulière : les étiquettes et les champs s'enchainent sans saut de ligne
- Les étiquettes à gauche (1/3 de la largeur) et les champs de saisie à droite (2/3 de la largeur)
- Les étiquettes à gauche (plus des 2/3 de la largeur) et les champs de saisie à droite
- Les champs de saisie à gauche et les étiquettes à droite
- Les champs de saisie sur toute la largeur de la page et sous l'étiquette correspondante.
Libre à vous de créer de nouvelles classes de style !

Licence, GNU GPL v3
Cet outil est un logiciel libre afin de permettre au plus grand nombre de l'utiliser.
'phpJSvForm' est protégé par un copyright ©2010-2011 - Pierre POISSON (synanceia) et par la licence GNU GPL v3.
Vous disposez de 4 libertés fondamentales.
- La liberté d'exécuter le programme, pour tous les usages (liberté 0).
- La liberté d'étudier le fonctionnement du programme, et de l'adapter à vos besoins (liberté 1).
- La liberté de redistribuer des copies (liberté 2).
- La liberté d'améliorer le programme et de publier vos améliorations, pour en faire profiter toute la communauté (liberté 3).