samedi 4 avril 2009

validation de formulaire : jformvalidate


JFormValidate est une extension Yii qui permet facilement de valider les formulaires sur le navigateur internet, avant de les soumettre au serveur. L'avantage d'un tel mécanisme est bien évidemment un gain de temps conséquent puisque les données envoyées au serveur web, sont déjà censées être correctement renseignées par l'utilisateur. Toutefois, la validation côté serveur reste indispensable puisqu'il est facile (avec un peu de persévérance) de passer outre la validation côté client.
Cette extension est basée sur le plugin JQuery Validate, offrant toutes les fonctionnalités nécessaires à la validation Javascript sur le navigateur.
Téléchargement : rendez-vous sur la page Yii dédiée aux extension (en)
La procédure d'installation est détaillée dans le fichier readme.html, livré avec l'extension. Sa mise en oeuvre est très simple puisqu'elle n'impose que peu de modification des formulaires existantes. La force de cette extension est qu'elle utilise les régles de validation définies au niveau du modèle (CModel), pour en déduire les régles à appliquer côté client. 

1. Déclaration
<?php
// déclaration de l'extension (optionnel si l'extension est
// déclarée  et chargée (autoload) dans la fichier de
//configuration de l'application
$CS=Yii::app()->jformvalidate;

// l'appel à Chtml::form() est remplacé par :
echo $CS->form();
?>


2.Mise en place
<div class="simple">
<?php
echo CHtml::activeLabel($model,'username');
?>
<?php
// remplace l'appel Chtml::activeTextField par
// $CS-> activeTextField ... et c'est tout
echo $CS->activeTextField($model,'username')
?>
</div>
Voir site d'exemple.