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

Soyez le premier à donner votre avis sur cette source.

Vue 12 435 fois - Téléchargée 4 119 fois

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

A voir également

Ajouter un commentaire Commentaires
Messages postés
8
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
2 mars 2012

Bonjour à tous,

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 (http://synanceia.free.fr/gstages2/).

Le début de ce projet étant antérieur à la création de 'phpJSvForm', certains formulaires (en particuliers, les formulaires de recherche) n'utilisent pas (actuellement) ce script.

A bientôt
Messages postés
2
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
30 septembre 2010

Et bien chez moi, c'est le bonheur! Je t'abandonne donc égoïstement, non sans te remercier une nouvelle fois pour cette pratique belle classe.
Messages postés
8
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
2 mars 2012

Bonjour TATHOR,

Merci pour ton commentaire.
L'ajout de ce code, conviendrait-il ?

if (!function_exists('mb_strtolower' ) )
{
function mb_strtolower($str,$encoding=null)
{
if (strtoupper($encoding)== "UTF-8" )
return utf8_encode(strtolower(utf8_decode($str)) );
return strtolower($str);
}
}

P.S. : Le code est en cours de correction... j'ai détecté des bogues gênants...
Messages postés
2
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
30 septembre 2010

Simple à utiliser, bien fait, accessible, pratique car le css peut être fait sur une feuille de style. Je suggère d'inclure dans ta classe une petite fonction pour les versions php ne supportant pas le "mb_strtolower". Merci
Messages postés
8
Date d'inscription
lundi 16 août 2010
Statut
Membre
Dernière intervention
2 mars 2012

Suite correction dysfonctionnement
Ajout d'un nouvel exemple sur ma page perso : http://synanceia.free.fr/phpjsvform/form.php?form=obligchk&h=150

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.