Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Form
Zend_Form Forum d'entraide pour le composant Zend_Form du Zend Framework (création de formulaires, helpers, AJAX etc.). Avant de poster -> FAQ Zend_Form.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2012, 17h22   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 20
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 20
Points : 0
Points : 0
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 :
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.
supertotal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2012, 17h58   #2
Membre confirmé
 
Avatar de DarkSeiryu
 
Homme Mickaël
Développeur Web
Inscription : janvier 2009
Messages : 408
Détails du profil
Informations personnelles :
Nom : Homme Mickaël
Âge : 23
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2009
Messages : 408
Points : 234
Points : 234
Envoyer un message via MSN à DarkSeiryu
Salut !

Tu peux créer ton propre Zend_Validate, comme cela par exemple :
Code :
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 :
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).
DarkSeiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 00h07   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 20
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 20
Points : 0
Points : 0
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 :
1
2
 
addValidator("NotEqual", "default");
supertotal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 00h17   #4
Membre confirmé
 
Avatar de DarkSeiryu
 
Homme Mickaël
Développeur Web
Inscription : janvier 2009
Messages : 408
Détails du profil
Informations personnelles :
Nom : Homme Mickaël
Âge : 23
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2009
Messages : 408
Points : 234
Points : 234
Envoyer un message via MSN à DarkSeiryu
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
DarkSeiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h40.


 
 
 
 
Partenaires

Hébergement Web