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 :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 :Ce qui donne, lorsque certain champs obligatoires sont rempli, et que d'autres ne sont pas valides :
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.