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();
16 févr. 2011 à 11:00
Cependant, quels sont les messages d'erreurs rencontrés? Avez-vous gardé la même arborescence que l'exemple fourni?
15 févr. 2011 à 10:20
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.
30 août 2010 à 10:45
Vous pouvez récupérer les infos remplies par le formulaire grâce à cette ligne:
var_dump($tabValidated);
Cordialement,
//Beejeridou
29 août 2010 à 11:24
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
7 juin 2010 à 14:55
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 ! :(
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.