IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

vérification combobox n'est pas la valeur par défaut


Sujet :

Zend_Form PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Points : 28
    Points
    28
    Par défaut vérification combobox n'est pas la valeur par défaut
    Bonjour à tous,

    je vous écris car je n'arrive pas à trouver une façon de controler que mon combobox ne contient pas la valeur par defaut.
    J'aimerais ajouter le controle à la création de mon formulaire via la methode addValidator() et vérifier qu'il ne contient pas la valeur : "default" une fois que le formulaire est posté.

    Pourriez-vous me dire s'il y a un validateur qui existe ou une solution me permettant d'effectuer cette vérification ?


    Ci-dessous, le code de mon formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $array = array('default'=>'selectionnez ...',
                         '2'=>'Deux',
                         '3"=>'Trois',
                         ....); // on dispose ici d'un tableau associatif
     
    // Création du combobox rempli avec les valeurs du tableau ci-dessus
    $region=new Zend_Form_Element_Select('regions');
    $region->setLabel('Région : ')
    		->setMultiOptions($array);
    Merci d'avance pour vos réponses.

  2. #2
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Salut !

    Tu peux créer ton propre Zend_Validate, comme cela par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    class Common_Validate_Select extends Zend_Validate_Abstract {
        const MSG_NOTDEFAULT = 'msgNumeric';
     
        public $lenght = 9;
     
        protected $_messageVariables = array(
            'lenght' => 'lenght',
        );
     
        protected $_messageTemplates = array(
            self::MSG_NOTDEFAULT => '"%value%" est la valeur par défaut, merci d\'en séléctionner une autre.'
        );
     
        public function isValid($value) {
            $this->_setValue($value);
     
    		if ($value == 'default') {
    			$this->_error(self::MSG_NOTDEFAULT);
     
    			return false;
        	} 
     
            return true;
        }
    }
    Ensuite, tu t'en sers comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $selectValidator = new Common_Validate_Select();
    // Création du combobox rempli avec les valeurs du tableau ci-dessus
    $region = new Zend_Form_Element_Select('regions');
    $region	->setLabel('Région : ')
    		->setMultiOptions($array)
    		->addValidator($selectValidator);
    J'ai fait ça rapidos hein, à toi d'adapter le code.

    DarkSeiryu

    PS : Tu remarqueras que le nom de la classe est Common_Validate_Select. Ce n'est qu'un exemple mais en fait mon collègue a codé des classes customs qui étendent de classes Zend dans un dossier propre qu'il a appellé "Common". Dans ce dernier, il a repris l'arborescence de Zend pour avoir des classes qui sont accessibles de la même manière que celles de Zend.
    Si tu pars sur cette option, pense à bien ajouter ta propre librairie à ton application_path (par exemple, pour mes projets Zend, j'ajoute toujours mon dossier "library" qui contient les classes Zend et mes classes Common).

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Merci pour la réponse.

    Je vais voir ce que je peux faire pour créer mon propre validateur.
    Ca explique toutefois que je n'ai pas trouvé ce que je cherchais en natif, un validateur du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    addValidator("NotEqual", "default");

  4. #4
    Membre actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Points : 275
    Points
    275
    Par défaut
    Re.

    Ben ton besoin est assez spécifique, du coup c'est normal que tu n'ais pas trouvé ça dans Zend directement.

    Je n'ai pas testé le code que je t'ai donné, mais à mon avis il fonctionne.

    Bon courage pour la suite !

    DarkSeiryu

Discussions similaires

  1. Valeur par défaut d'un champ si celui-ci n'est pas déjà rempli
    Par nakwakwak dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/02/2013, 17h07
  2. Réponses: 1
    Dernier message: 07/12/2010, 10h57
  3. [ADO, Access]_Paramètre ?_2 n'a pas de valeur par défaut?
    Par Gdal dans le forum Accès aux données
    Réponses: 1
    Dernier message: 04/03/2008, 22h19
  4. Réponses: 4
    Dernier message: 15/05/2007, 08h46
  5. [Pb : champ Text = pas de valeur par defaut ?]
    Par mat_dum dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 18/08/2003, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo