Génération/gestion de formulaire via fichier xml

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 144 fois - Téléchargée 17 fois

Contenu du snippet

!! LE ZIP EST DANS LE PREMIER COMMENTAIRE !!

Gestion automatique simple de formulaire via un fichier XML. Elle permet de ne pas se casser la tête avec les vérifications multiple qui servent a valider un formulaire. Il suffit d'ajouter les restrictions nécessaires a un champ pour qu'il soit vérifié automatiquement. C'est la première version. Je compte bien la mettre a jour dans peu de temps afin d'y rajouter un lien avec une base de données MySQL et permette de remplir un Combobox. Toute l'information est dans la suite, il y a même un fichier d'exemple dans le zip donc je vous laisse le découvrir.

Le génération du formulaire marche pas section donc dans votre fichier XML vos champs doivent être absolument en une balise <section> et </section>. Vous pouvez ajouter autant de section que vous le voulez, cela permet de mieux présenter votre formulaire en le divisant.

/* MISE A JOUR */
Lien avec la base de données établis. C'est encore basique mais ça permet de remplir un Combobox aisément. Il suffit de mettre la balise suivante :
<values source="TABLE:OPTION_ID:OPTION_VALUE:[WHERE]:[ORDER]" />

Exemple : <values source="sql_countries:ct_id:ct_name:[*]:[ct_name ASC]" />

[*] est un joker pour TOUS

Source / Exemple :


Fichier php "example-with-mysql.php"

<?php
require_once('lib/ctl.error.php');
require_once('lib/xml.form.php');
require_once('lib/ctl.mysql.php');

try {
	$ctlMySQL = ctlMySQL::getInstance();
	$ctlMySQL->connectToDb('YOUR_USERNAME', 'YOUR_PASSWORD', 'YOUR_DATABASE');
	$xmlForm = new xmlForm('example-with-mysql.xml');
	
	if($xmlForm->checkForm())
	{
		$e = new myException('Le formulaire est valide, on peut maintenant procéder a l\'enregistrement', 5, '', '');
		$e->showError();
		
		/*
		Entrez votre les actions nécessaire
		lorsque le formulaire est valide
		
		(Ex : Requête MySQL)

  • /
$xmlForm->clearForm(); // Comme la procédure a été complétée on peut effacer le formulaire // afin d'insérer un autre enregistrement. } } catch(myException $e) { $e->showError(); } echo $xmlForm->getCode(); ?> Fichier XML "example-with-mysql.xml" <form action="" name="test-form" method="POST"> <section label="Nouveau membre"> <input type="textbox" name="usr_lastname"> <label>Nom</label> <restriction>isAlpha</restriction> </input> <input type="textbox" name="usr_firstname"> <label>Prénom</label> <restriction>isAlpha</restriction> </input> <input type="textbox" name="usr_courriel"> <label>Courriel</label> <restriction>isEmail</restriction> <initialValue>example@domain.com</initialValue> </input> <input type="combobox" name="usr_sex"> <label>Sexe</label> <restriction>isNotNull</restriction> <values selected="-"> <value id="-">Non spécifié</value> <value id="m">Homme</value> <value id="f">Femme</value> </values> </input> <input type="combobox" name="usr_country"> <label>Pays</label> <restriction>isNotNull</restriction> <!--Les 2 derniers paramètres sont entre [] car ils peuvent contenir des espaces, c'est ma convention :P --> <!--TABLE:OPTION_ID:OPTION_VALUE:[WHERE]:[ORDER]--> <values source="sql_countries:ct_id:ct_name:[*]:[ct_name ASC]" /> </input> <input type="textarea" name="usr_description"> <label>Description</label> <restriction>isNotNull</restriction> </input> <input type="checkbox" name="usr_accept"> <label>J'accepte les termes et conditions</label> <restriction>isNotNull</restriction> </input> </section> </form> Le résultat est dans la capture d'écran.

Conclusion :


Les champs disponibles : Textbox, Combobox (ou Select), Textarea et Checkbox.

Les tags disponibles dans le fichier XML :

<name>NOM_DU_CHAMP</name>
Ce tag est indispensable au bon fonctionnement

<label>ETIQUETTE_DU_CHAMP</label>

<restriction>NOM_DE_LA_RESTRICTION</restriction>
Les restrictions disponibles : isAlpha, isNumeric, isOptional, isNotNull, isEmail, etc... (voir formValidator)

<initialValue>VALEUR_INITIALE</initialValue>
<class>NOM_DE_LA_CLASS_CSS</class>

Pour Combobox seulement
<values>
<value id="VALUE_ID">VALUE_TEXT</value>
...
</values>

A voir également

Ajouter un commentaire

Commentaires

Messages postés
4
Date d'inscription
dimanche 4 mai 2008
Statut
Membre
Dernière intervention
24 juin 2013

s'il vous plait j'ai besoin de ce même code en asp.net si quelqu'un peut m'aider c'est urgent
Messages postés
39
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2009

Merci Garno pour ta source, elle est fort intéressante ! mais je ne comprends pas pourquoi lorsque qu'on fait un foreach du $_POST :

foreach($_POST as $key=>$val) {
echo $allfields .= $key.'='.$val.'
';
}

cela m'affiche des doublons !!!!
Messages postés
276
Date d'inscription
dimanche 22 juillet 2001
Statut
Modérateur
Dernière intervention
5 décembre 2013

Je trouve le travail et le script super bien faits. Dommage que cette source soit notée que seulement 5/10.

Up
Messages postés
14
Date d'inscription
vendredi 3 mars 2006
Statut
Membre
Dernière intervention
22 janvier 2009

C'est difficil sans zip ... ou peut-on le télécharger ?

Merci
Messages postés
36
Date d'inscription
vendredi 4 mars 2005
Statut
Membre
Dernière intervention
14 janvier 2009

En fait, cela veut dire que le formulaire est valide et que tu peux exécuter le code que tu veux exécuter lorsque le formulaire est envoyé et valide. Je donnais l'exemple d'une requête SQL mais tu peux faire absolument n'importeq quoi !

N'hésite pas a me poser plus de question soit en privé ou ici !

Bonne soirée
Afficher les 24 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.

Du même auteur (cs_Garno)