Lien associé
Qui est en ligne
We have 1 guest online
|
Accueil Labo Boîte à outil [QuickForm] Définir des règles dans QuickForm
|
[QuickForm] Définir des règles dans QuickForm |
|
|
Cela peut être vraiment pénible d’aller chercher dans la doc officielle car elle est vraiment mal foutue, je vais donc essayer de regrouper les informations utiles à une utilisation poussée de QuickForm.
Pour ce qui est d’une utilisation basique de QuickForm je vous laisse à la documentation officielle elle est largement suffisante pour les choses simples, maintenant il peut être utile de sortir des sentiers battus dans certains cas bien précis avec des interactions entre champs bien complexes et des contrôles poussées sur des valeurs de champs.
Voici un exemple concret de cas que QuickForm ne gère pas de base : Vérifier qu’un champ de type numérique est compris entre des bornes prédéfinies constantes. Bien que cela semble trivial, QuickForm ne le gère pas intelligemment de base, ou alors il faut passer par des bidouillages pas propres du tout.
Mon idée à donc été de créer une classe (et non une fonction basique) qui regroupe l’ensemble de mes règles de gestions sur les formulaires.
Classe contenant les contrôles :
<?php
/**
* Mes contrôles QuickForm
*
*/
class QuickFormRules {
/**
* Controle si $value se trouve bien dans la borne [ $constants[0];$constants[1] ] (inclus).
*
* @param float $value
* @param array $constants
* @return boolean true si $value se trouve bien dans les bornes, false sinon.
*/
public static function cmp_to_constants ($value, $constants)
{
if (count($constants) != '2')
{
throw new Exception('FATAL ERROR : le paramètre attendu ne correspond pas');
}
else
{
if ($val < $constants[0] || $val > $constants[1])
{
return(false);
}
else
{
return(true);
}
}
}//fin methode cmp_to_constants
}//fin classe QuickFormRules
?>
A partir de là il va falloir enregistrer la règles et l’appliquer aux champs voulus.
Exemple : je veux vérifier que le champ « nbr » est compris entre 1 et 50.
// on enregistre la règle nommée « borne » de type « callback » qui correspond à l’appel de la méthode « cmp_to_constants » de la classe « QuickFormRules »…Ouf
$formulaire->registerRule('borne','callback','cmp_to_constants','QuickFormRules');
//Application de la règle au champ « nbr » en contrôlant que ce dernier est bien compris entre 1 et 50.
$formulaire ->addRule('nbr', 'PAS BON', 'borne', array(0=>1, 1=>50));
|
|
|
|
News
|
Ouverture du site de 3GK SOFTWARE |
Nous sommes fier de vous présenter la première version du site de la société 3GK SOFTWARE ! Le site Internet de la société 3GK SOFTWARE est officiellement ouvert en date du 18 juillet 2007. Bon surf ! |
|
|
|