Lien associé

 

 

 

 

Qui est en ligne

We have 1 guest online
Accueil arrow Labo arrow Boîte à outil arrow [QuickForm] Définir des règles dans QuickForm
[QuickForm] Définir des règles dans QuickForm PDF Print
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));
Comments
Add New Search
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

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 !