Phpjsvform : des classes php, des javascripts pour créer facilement un formulaire.

Description

'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.

Le code PHP est basé autour de plusieurs classes. Grâce à ces classes, il suffit de quelques lignes pour construire un formulaire complexe...
Les scripts JS ont été écrits pour être non intrusifs.
La mise en forme du formulaire est obtenu en utilisant des classes de style CSS.

Plus d'info, des exemples commentés : http://synanceia.free.fr/phpjsvform

Source / Exemple :


$form1=new Form('') ;

/* Identité de l'entreprise */
	$g1 = new Groupe('', 'Identité de l\'entreprise', 'Identité de l\'entreprise') ;
	$p1 = new Paragraphe('','', 'cssSansBordure') ;
	$p2 = new Paragraphe('','', 'cssform3 cssSansBordure') ;
	$p3 = new Paragraphe('','', 'cssSansBordure') ;
	$p4 = new Paragraphe() ; // Adresse
	$p5 = new Paragraphe() ; // Tel, fax, ...

	$text1=new Input('entreprise_nomcommercial', 'Nom commercial : ', $info['entreprise_nomcommercial'], '', 'Nom usuel') ;
	$chk = new Input('chk','Cocher cette case... pour recopier le \'nom commercial\' vers \'raison sociale\'.','','checkbox') ;
	$text2=new Input('entreprise_raisonsociale', 'Raison sociale : ', $info['entreprise_raisonsociale'], '', 'Dénomination complète') ;
	$text3=new Input('entreprise_siret', 'SIREN/SIRET : ', $info['entreprise_siret']) ;
	$text4=new Input('entreprise_adressel1', 'Adresse (info 1) : ', $info['entreprise_adressel1']) ;
	$text5=new Input('entreprise_adressel2', 'Adresse (info 2) : ', $info['entreprise_adressel2']) ;
	$text6=new Input('entreprise_cp', 'Code postal / Ville : ', $info['entreprise_cp']) ;
	$text6->setLargeur('50px') ;
	$text7=new Input('entreprise_ville', '', $info['entreprise_ville']) ;
	$text7->setLargeur('250px') ;
	$text8=new Input('entreprise_telephone', 'Téléphone / fax : ', $info['entreprise_telephone']) ;
	$text8->setLargeur('100px') ;
	$text9=new Input('entreprise_fax', '', $info['entreprise_fax']) ;
	$text9->setLargeur('100px') ;
	$text10=new Input('entreprise_mail', 'Courriel : ', $info['entreprise_mail'], '', 'mail@fai.net') ;
	$text11=new Input('entreprise_url', 'Site web : ', $info['entreprise_url'], '', 'http://...') ;
	
	$form1->addVerif('copie_chk', $chk, array($text2,$text1)) ;
	$form1->addVerif('exist',$text1,$text2,$text3,'SIRET',$text3,'codePostal',$text6) ;
	$form1->addVerif('exist',$text4,$text6,$text7,$text8) ;
	$form1->addVerif('tel',$text8,$text9,'courriel',$text10,'url',$text11) ;
	
	$g1->addElement($p1->addElement($text1), $p2->addElement($chk), $p3->addElement($text2,$text3),
	$p4->addElement($text4,$text5,$text6,$text7),$p5->addElement($text8,$text9,$text10,$text11)) ;

/* Activité de l'entreprise */
	$g2 = new Groupe('', 'Activité de l\'entreprise', 'Activité de l\'entreprise') ;
	$p1g2 = new Paragraphe('','', 'cssSansBordure') ;
	$p2g2 = new Paragraphe('','', 'cssform3 cssSansBordure') ;
	
	$s1=new Liste('entreprise_nbsalaries', 'Effectif (sur le site) : ', $info['entreprise_nbsalaries'], array('ne sais pas', 'moins de 10', 'entre 10 et 100', 'entre 100 et 500', 'plus de 500'), array('Ne sais pas', 'Moins de 10', 'Entre 10 et 100', 'Entre 100 et 500', 'Plus de 500')) ;
	$s1->setLargeur('130px') ;
	$t2=new Input('entreprise_codeape', 'Code APE (NAF 2008) : ', $info['entreprise_codeape']) ;
	$t2->setLargeur('50px') ;
	$t3=new Texte('entreprise_activite', 'Activité : ', $info['entreprise_activite']) ;
	$t4=new Texte('entreprise_commentaire', 'Commentaire : ', $info['entreprise_commentaire']) ;
	
	$g2->addElement($p1g2->addElement($s1, $t2),$p2g2->addElement($t3, $t4)) ;
	$form1->addVerif('exist',$t3,'APE',$t2) ;

	/* Accueil de stagiaires */
	$g3 = new Groupe('', 'Accueil de stagiaires', 'Accueil de stagiaires') ;
	$p1g3 = new Paragraphe('','', 'cssform4 cssSansBordure') ;
	$p2g3 = new Paragraphe('','', 'cssform3 cssSansBordure') ;
	$s2=new Liste('entreprise_stagiaires', 'Accueil de stagiaires au cours des années précédentes : ', $info['entreprise_stagiaires'], array('ne sais pas', 'oui', 'non'), array('Ne sais pas', 'Oui', 'Non')) ;
	$s3=new Liste('entreprise_acceptstagiaire', 'Accueil de stagiaires cette année : ', $info['entreprise_acceptstagiaire'], array('ne sais pas', 'oui', 'possible', 'non'), array('Ne sais pas', 'Oui', 'Possible', 'Non')) ;
	$tg3=new Texte('entreprise_mission', 'Mission-s pouvant être confiée-s à un stagiaire :<br />(à défaut, mots clés illustrant le domaine - exemples : électronique, informatique,... )', $info['entreprise_mission']) ;

	if(DROIT!='admin')
	{		
		$s2->setDisabled() ;
		$s3->setDisabled() ;
	}
		
	$g3->addElement($p1g3->addElement($s2, $s3),$p2g3->addElement($tg3)) ;
	$form1->addVerif('exist',$tg3) ;

	/* Complément */
	$g4 = new Groupe() ;
	$pg4 = new Paragraphe('','', 'cssform3 cssSansBordure') ;
	$chkg4 = new Boutons('entreprise_affiche','checkbox',array('Cocher cette case pour refuser de rendre ces informations publiques.'),array('0'),$info['entreprise_affiche']) ;
	$tg4 = new Texte('entreprise_pourquoi', 'Justification du refus : ', $info['entreprise_pourquoi']) ;
	
	$g4->addElement($pg4->addElement($chkg4, $tg4)) ;
	$form1->addVerif('exist_chk',$chkg4, $tg4) ;
	
	$form1->addElement($g1,$g2,$g3,$g4) ;
		
	if($form1->verifForm())
	{
		echo '<p>Traitement possible...
		<br/>Tout est ok...</p>' ;
	}
	else
		echo $form1;

Conclusion :


Un forum dédié à phpJSvForm est disponible : n'hésitez pas à y poster les dysfonctionnements (bugs) que vous constatez... http://synanceia.free.fr/forum/
Je tenterai d'y remédier...
----
'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).

----
Plus d'info, des exemples commentés : http://synanceia.free.fr/phpjsvform

Malgré tout le temps et le soin apporté, des erreurs (et des fautes d'orthographe) sont probablement incluses dans la documentation. N'hésitez pas à me les signaler !

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.