begin process at 2012 05 27 18:02:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Javascript / DHTML

 > PHPJSVFORM : DES CLASSES PHP, DES JAVASCRIPTS POUR CRÉER FACILEMENT UN FORMULAIRE.

PHPJSVFORM : DES CLASSES PHP, DES JAVASCRIPTS POUR CRÉER FACILEMENT UN FORMULAIRE.


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Javascript / DHTML Classé sous :formulaire, vérification, génération automatique, styles CSS, JS non-intrusif Niveau :Initié Date de création :16/08/2010 Date de mise à jour :12/11/2011 17:28:54 Vu / téléchargé :4 289 / 423

Auteur : synanceia

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
'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

  • $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;
	$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 !

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 août 2010 20:29:00 :
Informations sur la licence : GNU GPL v3
26 août 2010 12:47:36 :
* Ajout styles CSS pour modifier aisément l'apparence des champs (et/ou des étiquettes) obligatoires : cssObligatoire (le code PHP et le javascript sont affectés par cet ajout) * Correction dysfonctionnement : le javascript ne vérifiait pas si une case à cocher requise (obligatoire) était effectivement cochée (le formulaire était soumis au serveur et bloqué par celui-ci - avec un avertissement)
27 août 2010 20:47:28 :
2 corrections mineures * PHP : l'ajout du saut de ligne dans le cas où l'étiquette (label) était trop long se produisait dans certains cas où il n'était pas souhaité. - * JS (CalendarPopup) : ajout d'une ligne de code pour forcer le focus sur le champ dont la valeur a été modifiée en utilisant le calendrier ; ceci permet de mettre à jour (actualiser) l'aspect du champ et de supprimer un éventuel avertissement devenu obsolète.
03 septembre 2010 13:00:47 :
clVerifForm.php : correction d'un bogue (fonction miseEnFormePOST), les caractères spéciaux au sein des champs (exemple : 'apostrophe') n'étaient pas traités correctement...
17 octobre 2010 09:05:03 :
Mise à jour majeure : il est possible dorénavant d'ajouter ses propres scripts pour traiter les données du formulaire. Exemple disponible ici : http://synanceia.free.fr/phpjsvform/form2.php?form=script&h=250 ------ +Quelques corrections mineures
26 juillet 2011 14:18:53 :
21/02/2011 - Modification expression régulière pour URL 26/07/2011 - Ajout mineur : les champs désactivé (disabled) sont exclus des vérifications
28 juillet 2011 11:17:06 :
* Correction bogue lié à la mise à jour du 26/07/11 --- * Ajout : il est possible d'insérer une case à cocher qui désactive d'autres champs du formulaire Exemple disponible ici : http://synanceia.free.fr/phpjsvform/form2.php?form=desactive_chk&h=280 ---
02 août 2011 10:29:17 :
* Ajout : il est dorénavant possible d'insérer un bouton de validation personnalisé (le texte affiché et la valeur envoyée sont définis lors de la conception du formulaire). Exemple disponible ici : http://synanceia.free.fr/phpjsvform/form2.php?form=bouton_perso&h=200 ---
25 août 2011 08:46:12 :
* Ajout : il est dorénavant possible de cocher (ou décocher) un ensemble de cases en cliquant sur une case à cocher particulière. Exemple disponible ici : http://synanceia.free.fr/phpjsvform/form2.php?form=coche_tout&h=320 ---
02 novembre 2011 21:35:32 :
* Corrections bogues --- * Ajout : un questionnaire est validé automatiquement si le bouton "Valider" n'est pas affiché. Exemple disponible ici : http://synanceia.free.fr/phpjsvform/form.php?form=sans_btn_valid&h=360 ---
05 novembre 2011 08:48:54 :
* Correction d'un bogue gênant introduit par màj du 02/11/2011 --- * Ajout : un questionnaire peut être traité par une nouvelle page. Exemple (et recommandation) disponible ici : http://synanceia.free.fr/phpjsvform/form.php?form=choix_vers_page2&h=180 ---
12 novembre 2011 17:28:55 :
Ajout de la documentation générée par doxygen (consultable en ligne -- http://synanceia.free.fr/phpjsvform/docs/html/index.html)

 Sources de la même categorie

BOUTON POUR SITE WEB PAYMENT par Tom56340
Source avec Zip Source avec une capture PETIT CLIENT + AJAX + PHP par kiki67100
Source avec Zip Source avec une capture BOÎTE À ONGLETS / MENUS ET SOUS-MENUS / JAVASCRIPT / PHP / D... par Heirem
Source avec Zip Source avec une capture JUKEBOX EN LIGNE par Flachy Joe
Source avec Zip Source avec une capture ONGLET GÉNÉRÉ EN PHP ET REQUETE AJAX par djmmix

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip VÉRIFICATION DE FORMULAIRE EN PHP par psonic13
Source avec Zip [PHP5] - CLASSE DE VÉRIFICATION DE FORMULAIRE par codefalse
PHP5 - CLASSE DE VÉRIFICATION DE FORMULAIRE SIMPLE par NainPuissant
SÉCURISATION FORMULAIRE (SELECT ET OPTION) par fafa1510

Commentaires et avis

Commentaire de synanceia le 26/08/2010 12:51:27

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

Commentaire de TATHOR le 29/09/2010 23:35:50 9/10

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

Commentaire de synanceia le 30/09/2010 19:30:32

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

Commentaire de TATHOR le 30/09/2010 23:19:04

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.

Commentaire de synanceia le 02/08/2011 10:36:16

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

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Question sur le formulaire (vérification email) [ par developvbdebut ] Bonsoir tout le mondeJe souhaiterai savoir si il y a un code qui permet de v&#233;rifier si c'est bien une adresse email qui &#224; &#233;tait rentr&# Vérification d'un formulaire [ par hou1919 ] Comment pour ne pas vider les champs apres la verification d'un formulaireet lorsque je trouve des champs non remplis par exemple et à savoir que mes Formulaire + vérification + enregistrement sur MySQL + envoie informations vers API [ par bioubelard ] Bonjour, je me permets de poster ce nouveau sujet car je suis actuellement étudiant en 1ère année en DUT info et je dois développer un petit site. Je Vérification Entrée par Java Script dans formulaire [ par Tanaka56 ] Bonjour à tous.J'ai un formulaire HTML qui après validation va su vérification de formulaire [ par nino69 ] Bonjour, j'ai cr&eacute;e un formulaire et une v&eacute;rification en PHP. Si l'un des champs est mal rempli, le code PHP envoye un message &agrave; l vérification de champ d'un formulaire [ par cobrachris ] j'ai lu plusieur post mais j'ai pas vraiment trouver.Voila je vous explique rapidement.J'aimerais cr&#233;er unformulaire pour enregistrer des lieux e vérification mail dans un formulaire [ par veston ] Bonjour à tous. Je viens faire appel à vous car je suis bloqué sur un code... J'essaye de créer un formulaire avec une vérification d'email en temps verification de formulaire de contact [ par mnou ] mnou Bonjour j un problème lié au formulaire de contact c à dire la vérification des champs de contact : controle du champs d'un formulaire+ message alert aves son [ par sochita ] aidezzz moi SVP chui encore débutanteee en PHP et En JAVASCRIPT et notre Prof bous demande de faire un controle sur un champ tapé dans un formulaire: demande de formulaire [ par myresto ] Bonjour, je suis en train de finaliser mon site de livraison de plat a domicile, mais j aurais besoin d inserer dans ma page d accueil un tableau perm


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales