Réaliser un formulaire de contact avec gestion d'erreurs...

Eléphant du PHP | 121 Messages

11 mars 2010, 18:04

(le titre est peut-être un peu long)

J'ai crée un framework qui permet de générer des éléments HTML. En guise de démonstration je vous propose la création d'un formulaire de contact avec gestion d'erreurs et validation de données.

On crée le formulaire comme ça :
$form = new Wd2CForm
(
	array
	(
		WdElement::T_CHILDREN => array
		(
			'gender' => new WdElement
			(
				WdElement::E_RADIO_GROUP, array
				(
					WdForm::T_LABEL => 'Gender',
					WdElement::T_OPTIONS => array('@genders.mrs', '@genders.miss', '@genders.mr'),
					WdElement::T_MANDATORY => true
				)
			),

			'lastname' => new WdElement
			(
				WdElement::E_TEXT, array
				(
					WdForm::T_LABEL => 'Lastname',
					WdElement::T_MANDATORY => true
				)
			),

			'firstname' => new WdElement
			(
				WdElement::E_TEXT, array
				(
					WdForm::T_LABEL => 'Firstname',
					WdElement::T_MANDATORY => true
				)
			),

			'company' => new WdElement
			(
				WdElement::E_TEXT, array
				(
					WdForm::T_LABEL => 'Company'
				)
			),

			'email' => new WdElement
			(
				WdElement::E_TEXT, array
				(
					WdForm::T_LABEL => 'E-Mail',
					WdElement::T_MANDATORY => true,
					WdElement::T_VALIDATOR => array(array('WdForm', 'validate_email'))
				)
			),

			'message' => new WdElement
			(
				'textarea', array
				(
					WdForm::T_LABEL => 'Your message',
					WdElement::T_MANDATORY => true
				)
			),

			new WdElement
			(
				WdElement::E_SUBMIT
			)
		)
	)
);
Ce qui nous donne :

Image

Et on le valide comme ça :
if ($form->validate($_POST))
{
	echo "<p><strong>le formulaire est valide</strong></p>";
}
Ce qui donne, lorsqu'aucun des champs obligatoires n'est rempli :

Image

Ce qui donne, lorsque certain champs obligatoires sont rempli, et que d'autres ne sont pas valides :

Image

Il y a aussi un peu d'internationalisation en jeu, comme vous pouvez le voir, les libellés des champs ainsi que les messages d'erreur sont traduits automatiquement.

Je vous invite à découvrir ça sur mon blog : Réaliser un formulaire de contact avec gestion d'erreurs et validation de données grâce au framework WdElements.