Bonjour à tous,


J'ai un petit problème avec une combobox je souhaite récupérer l'id réel du libelle que je selectionne.

par exemple ma combobox :

Role :
------------
| Membre |
| Admin |
| Visiteur |
-----------

j'ai pour mes libellés un Id bien spécifique par exemple :
Id Libelle
6 Membre
15 Admin
19 Visiteur

sauf que lorsque j'essai de récuper cet id il ne sagit pas de l'id de mon libelle mais l'id de la combobox : en gros j'aurais quelque chose du genre :

Id Libelle
0 Membre
1 Admin
2 Visiteur

Voici 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
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
 
class Application_Form_Inscription extends Zend_Form
{
    public function __construct($options = null)
    {
        parent::__construct($options);
        //liste tous ce qu'on récupère de la table status pour le placer dans la combobox
    	$i = 0;
		foreach ($options as $st[]){
			$idStatus[] = $st[$i]['IDSTATUS']; 
			$libelleStatus[] = $st[$i]['LIBELLESTATUS'];
			$i = $i +1;			
		}
        $this->setName('inscription');
        $id = new Zend_Form_Element_Hidden('id');
 
        $login = new Zend_Form_Element_Text("username");
        $login->setLabel('Utilisateur : ')
        		// on rend le champs obligatoire
                ->setRequired(true)
                // supprime le HTML non désiré
                ->addFilter('StripTags')
                // supprime les espaces 
                ->addFilter('StringTrim')
                //on interdit les saisis vides
                ->addValidator('NotEmpty');
 
        $mdp = new Zend_Form_Element_Password('password');
        $mdp->setLabel('Mot de passe : ')
        	// on rend le champs obligatoire
            ->setRequired(true)
            // supprime le HTML non désiré
            ->addFilter('StripTags')
            // supprime les espaces 
            ->addFilter('StringTrim')
            //on interdit les saisis vides
            ->addValidator('NotEmpty');
        $role = new Zend_Form_Element_Select("role");
        $role->setLabel('Role : ')
        		->setRequired(true)
        		->setValue($idStatus)
				->setMultiOptions($libelleStatus);
		//$role = $role->getValue();	
        $envoyer = new Zend_Form_Element_Submit('inscrire');
        $envoyer->setAttrib('id', 'boutoninscrire');
        $this->addElements(array($login, $mdp, $role, $envoyer));
	}
}

Et voici comment je récupère mes valeurs (dans le controlleur) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
	        	if ($form->isValid($formData)) {
	        	//si le formulaire est valide, on instancie la classe inscriptions 
	        	//avec les valeurs du formulaire
	            $login = $form->getValue('username');
	            $mdp = $form->getValue('password');
	            $idRole = $form->getValue('role');
	            ...}
Est ce que vous auriez une idée de comment récupérer ces Id "réels"