Identification d'une sélection d'un menu déroulant
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:
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:
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"