Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
je souhaiterais récupérer la valeur du paramètre 'value' d'un formulaire Dojo.
Voici comment je récupère le champ saisi par le formulaire dans mon contrôleur:
$familleProduit=$this->_getParam('familleProduitSelect',0);
Voici le code du formulaire où je renseigne mon combobox:
$lstFamilleProduit = new Zend_Dojo_Form_Element_ComboBox('familleProduitSelect'); $lstFamilleProduit->setLabel('Produit: ') ->setAutoComplete(true) ->setStoreId('familleStore') ->setStoreType('dojo.data.ItemFileReadStore') ->setStoreParams(array('url'=>'/extranet/consulterincident/listefamilleproduit', 'jsId'=>'familleStore')) ->setAttrib("searchAttr", "libelle") ->setOptions(array('id'=>'familleProduitSelect', 'name'=>'familleProduit')); $lstFamilleProduit->setAttrib('onChange','majListeTypeProduit();');
Cette liste est valorisée par un contrôleur qui génère du code JSON, voilà son contenu:
{"identifier":"id","items":[ {"id":"1","libelle":"Alerte"}, {"id":"2","libelle":"Informatique"}, {"id":"3","libelle":"Logiciel"}, {"id":"4","libelle":"Radio"}, {"id":"5","libelle":"Energie"}, {"id":"6","libelle":"Infrastructure"}, {"id":"7","libelle":"Mesure"} ],"label":"libelle"}
Je m'intéresse au champ "id" pour la méthode _getParam() du contrôleur au lieu du champ "libelle". Mais "libelle" doit rester affiché dans le formulaire.
Comment dois-je faire?
Merci pour vos réponses.
Dernière modification par fatahou (22-05-2009 08:55:59)
Hors ligne
Salut,
Je me suis fait avoir aussi avec le même problème pourtant c'est dans la doc.
Il ne faut pas utiliser combobox mais filteringselect.
ComboBoxes return the label values
ComboBoxes return the label values, and not the option values, which can lead to a disconnect in expectations. For this reason, ComboBoxes do not auto-register an InArray validator (though FilteringSelects do).
Hors ligne
Merci pour l'info ledahu.
Le problème avec le FilteringSelect c'est que une valeur est requise pour valider le formulaire par défaut. J'ai donc tenté d'enlever cette contrainte mais je n'y arrive pas, comment fait t'on?
En regardant le code source du formulaire j'ai:
aria-required="true"
j'ai tenté sans succès sur le FilteringSelect dans mon Zend_Form
$familleProduit->setAttrib("aria-required","false");
->setRequired(false);
Ne fonctionne pas non plus
Comment fait t'on pour récupérer l'ID de mes filteringSelects dans le code ZF?
Dernière modification par fatahou (22-05-2009 08:18:38)
Hors ligne
Salut,
Pour rendre un FilteringSelect Dijit optionnel il faut faire:
$monObjetFilteringSelect->setAttrib("required", "false");
Et pour le numéro d'id il est sélectionné par $this->_getParam('familleProduitSelect',0); automatiquement dans le contrôleur ZF. Selon ce que l'on a specifié dans le formulaire ZF bien sure:
->setOptions(array('id'=>'familleProduitSelect', 'name'=>'familleProduit'));
Mille mercis pour avoir éclairé ma lanterne, je sens que je vais passer une bonne journée de codage
Dernière modification par fatahou (22-05-2009 08:56:47)
Hors ligne
Pages: 1