Génération de formulaires html personnalisés.

Soyez le premier à donner votre avis sur cette source.

Vue 13 361 fois - Téléchargée 2 275 fois

Description

Bonjour,

L'archive comprend la classe formulaire qui génère le code HTML du formulaire, la classe de vérification des données, la classe captcha.

Vous pouvez générer les text, textarea, select, radio, checkbox, hidden, submit, captcha ajax.

Vérification des Emails, des num de téléphones, etc.

Tout est parametrable.

Cette source a beaucoup à évoluer. Je compte sur vous pour me donner vos idées afin que tout le monde puisse gérer des formulaires facilement.

La regénération du captcha se fait en ajax par la bibliothèque javascript prototype.
Si vous utilisez Jquery, pensez à JqueryNoConflict() ou à changer le code ajax de la classe (juste une requete ajax, rien de bien méchant).

Comme d'hab, et je sais que c'est un gros défaut, je n'ai pas beaucoup commenté le code source. C'est pour cela que toutes les questions sont les bienvenues.

Dézippez l'archive, et copiez le répertoire formulaire sur votre serveur afin d'exécuter formulaire.php pour l'exemple.

L'architecture fournie est opérationnelle, veuillez bien vérifier vos chemins en cas de changements (notamment pour le captcha).

Le formulaire est complètement personnalisable. (valeurs par défaut en haut de la classe formulaire) + feuille de style. Regardez bien le code source de votre formulaire car il va vous permettre de voir les id générés (préfixe in_$name pour les input par exemple). Ces id vont vous permettre de gérer des cas particuliers de mise en forme css.

Je suis de nouveau en train de me perdre dans mes explications... le mieux est de tester.

Source / Exemple :


//Comment générer le formulaire:
require_once("classes/formulaire/class.Formulaire.php");

$form=new Formulaire("formulaire.php");
$fields=array(
	""=>array("type"=>"comment", "name"=>"entete", "value"=>"<br />(*) Champs obligatoires"),
	"Civilité"=>array("type"=>"radio", "name"=>"civil", "label"=>"1",
		"valuesRadio"=>array("Mme", "Mlle", "Mr"), "checkedRadio"=>"2"),
	"Nom"=>array("type"=>"text", "label"=>"1", "name"=>"nom", "required"=>"1"),
	"Email"=>array("type"=>"email", "label"=>"1", "name"=>"email", "required"=>"1"),
	"Code Postal"=>array("type"=>"text", "label"=>"1", "name"=>"cp"),
	"Téléphone"=>array("type"=>"phone", "label"=>"1", "name"=>"tel", "required"=>"1"),
	"Objet"=>array("type"=>"list", "label"=>"1", "name"=>"objet", "required"=>"1", 
		"valuesList"=>array("Option 1", "Option 2"), "selectedList"=>"1"),
	"Message"=>array("type"=>"textarea", "label"=>"1", "name"=>"msg"),
	"Captcha"=>array("type"=>"captcha", "label"=>"1", "name"=>"captcha", "required"=>"1"),
	"Envoyer"=>array("type"=>"submit", "name"=>"submit")
);
$form->setTabFields($fields);
$form->createForm();

$tabValidated = $form->verifValidate();
if($tabValidated) 
{
	//TRAITEMENT DES INFOS
	var_dump($tabValidated);
}
echo $form->getMsg();
echo $form->displayForm();

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
35
Date d'inscription
lundi 10 avril 2006
Statut
Membre
Dernière intervention
21 mai 2010

Il existe des logiciels qui gèrent les captchas, je vous invite à en consulter la liste.

Cependant, quels sont les messages d'erreurs rencontrés? Avez-vous gardé la même arborescence que l'exemple fourni?
Messages postés
2
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
15 février 2011

Bonjour, c'est le 45 ème formulaire captcha que j'essais et qui ne fonctionne pas, savez vous une adresse avec un capcha fait par un pro, même si'l faut payer car les amateurs apparement ne savent pas expliquer
array(10) { ["entete"]=> string(29) "
(*) Champs obligatoires" ["civil"]=> string(1) "0" ["nom"]=> string(3) "tut" ["email"]=> string(20) "et_emilian@yahoo.com" ["cp"]=> string(5) "49240" ["tel"]=> string(10) "0952640101" ["objet"]=> string(7) "Option1" ["msg"]=> string(9) "sdfsdfsdf" ["captcha"]=> string(5) "cKAMn" ["submit"]=> string(0) "" }
Formulaire envoyé avec succès.
Messages postés
35
Date d'inscription
lundi 10 avril 2006
Statut
Membre
Dernière intervention
21 mai 2010

Cette classe ne gère pas l'envoi du formulaire, juste la mise en place des champs ainsi que la vérification de ceux-ci.

Vous pouvez récupérer les infos remplies par le formulaire grâce à cette ligne:

var_dump($tabValidated);

Cordialement,
//Beejeridou
Messages postés
4
Date d'inscription
jeudi 12 mai 2005
Statut
Membre
Dernière intervention
20 septembre 2010

Bonjour,
ce script a l'air pas mal, cependant où met-on l'adresse mail pour recevoir le mail du formulaire ???
Merci pour la réponse.
Cordialement
Messages postés
261
Date d'inscription
vendredi 20 avril 2007
Statut
Membre
Dernière intervention
9 août 2013
3
Le code est propre mais je le trouve tres lourd !
Je m'explique : quand j'ai vu ta source ce qui m'a interesse c'etait la conception, et la j'ai ete telement decu ! Tu as fait un god object Formulaire et c'est tout !
Tu pourrais alleger le code en creant plus de classe et en utilisant l'heritage du genre une classe Formulaire contenant une liste d'objet Fields etc etc. Tu peux meme pousser plus loin en gerant aussi le css sous la forme d'une classe.
Tu classes pourtant ta source dans la categorie Class et Objet (POO) sans exploiter les possibilites de l'objet ! :(
Afficher les 17 commentaires

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.