Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-03-2009 15:56:37

mksoft
Nouveau membre
Date d'inscription: 24-03-2009
Messages: 9

[résolu] PB avec FilteringSelect et dojo.data.ItemFileReadStore

Bonjour

j'essaie de modifier le contenu du store de ma combobox (FilteringSelect) dans un fonction Javascript (avec dojo.xhrPost) à partir du fichier (en json  voir plus bas).


function getMonId(id)
{
    dojo.xhrPost(
        {
            //url:'/test/index/monid/cle/'+id,
            url:'/test/public/liste.json',
            //handleAs: 'json-comment-filtered',
            load: function(response)
                {
                 alert('load=>'+ response);       
                 var mesestore = new dojo.data.ItemFileReadStore({data: response});
                 dojo.byId("MonId").store = mesestore;
                 
                },   
            error:function(response)
                {
                  alert ('error=>' + response);   
                }      
               
         
        }
       
    );
}

le fichier json:
{"identifier":"id","items":[{"id":"1","toto":"KLOP 240s MTB"},{"id":"2","toto":"SUZUKI XTR  HB-M960"},{"id":"3","toto":"ATOMLAB Pimp 20"},{"id":"5","toto":"DT SWISS ES250-2"}]}

Message firebug :

dijit.form.ComboBox: Error: dojo.data.ItemFileReadStore: No JSON source data was provided as either URL or a nested Javascript object.

Cependant ma combobox reste désespérément vide ! une idée ?

Michel

Dernière modification par mksoft (26-03-2009 18:02:52)

Hors ligne

 

#2 26-03-2009 14:28:19

mksoft
Nouveau membre
Date d'inscription: 24-03-2009
Messages: 9

Re: [résolu] PB avec FilteringSelect et dojo.data.ItemFileReadStore

voici la solution pour charger une combobox (filteringSelect) sur un Onchange() d'un autre élement de la form (en l'occurence une autre combobox)  (ZF version 1.7.4  attention bug sur ItemFileReadstore à partir de 1.7.6)


en remplaçant

dojo.byId("MonId").store=new dojo.data.ItemFileReadStore({data: response});

par

dijit.byId("MonId").store=new dojo.data.ItemFileReadStore({data: response});



function getMonId(id)
{
    dojo.xhrPost(
        {
            url:'/test/index/monid/cle/'+id,
            handleAs: 'json',
            load: function(response)
                {
                dijit.byId("MonId").store=new dojo.data.ItemFileReadStore({data: response});
                },
            Error: function(errorTxt){
                console.log("erreur dans getMonId: " + errorTxt)
              }
             
       }
    );
}


avec la form :


public function getForm()
    {
        //Zend_Registry::get('logger')->info('on passe dans getform');
        $form = new Zend_Form;

        $userId = new Zend_Dojo_Form_Element_FilteringSelect('userId');
        $userId->setLabel('Select a user')
        ->setAutoComplete(true)
        ->setStoreId('userStore')
        ->setStoreType('dojo.data.ItemFileReadStore')
        ->setStoreParams(array('url'=>'/test/index/userlist'))
        ->setAttribs(array("searchAttr" => "toto","onchange" => "getMonId(this.value)"))
        ->setRequired(true);

        $MonId = new Zend_Dojo_Form_Element_FilteringSelect('MonId');
        $MonId->setLabel('selection liee')
        ->setAutoComplete(true)
        ->setStoreId('monStore')
        ->setStoreType('dojo.data.ItemFileReadStore')
        ->setAttribs(array("searchAttr" => "toto"))
        ->setRequired(true);

        $submit = $form->createElement('submit','submit');

        $form->addElements(array($userId,$MonId,$submit));

        return $form;
    }

Hors ligne

 

#3 26-03-2009 16:42:31

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [résolu] PB avec FilteringSelect et dojo.data.ItemFileReadStore

non le bug sur les ItemFileReadStore a été corrigé sur la 1.7.7, il n'est présent que sur la 1.7.6.

Mais c'est sympa de le précisé dans ton post smile

Hors ligne

 

#4 27-03-2009 09:12:59

mksoft
Nouveau membre
Date d'inscription: 24-03-2009
Messages: 9

Re: [résolu] PB avec FilteringSelect et dojo.data.ItemFileReadStore

j'ai testé la version ZF 1.7.7 ce matin. avec le même source, j'ai une erreur trappée dans Firebug.


dojo.data is undefined
var userStore = new dojo.data.ItemFileRe...tore({"url":"\/test\/index\/userlist"});


donc je maintiens que mon code précité fonctionne sur ZF 1.7.4   Après ...

Hors ligne

 

#5 27-03-2009 09:58:28

ledahu
Membre
Date d'inscription: 13-03-2008
Messages: 69

Re: [résolu] PB avec FilteringSelect et dojo.data.ItemFileReadStore

Je vais tester car j'utilise pas mal les ItemFileReadStore et depuis le 1.7.7 je n'ai plus de problème.

Mon code n'est pas exactement le même que toi mais je vais tester.
Je sais que le code a changé pour corriger un problème d'id déjà existant avec les ItemFileReadStore.
Peux tu me donner l'erreur que tu as dans ton firebug stp ?

Hors ligne

 

#6 27-03-2009 20:35:03

mksoft
Nouveau membre
Date d'inscription: 24-03-2009
Messages: 9

Re: [résolu] PB avec FilteringSelect et dojo.data.ItemFileReadStore

dans firebug :

dojo.data is undefined
var userStore = new dojo.data.ItemFileRe...tore({"url":"\/test\/index\/userlist"});

Hors ligne

 

#7 29-03-2009 09:36:23

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: [résolu] PB avec FilteringSelect et dojo.data.ItemFileReadStore

Bonjour,

j'ai essayé ta méthode, vu que la mienne provoquait un déphasage entre le source html et le contenu visible de la listebox. (voir mon message ici)
Mon problème est qu'à la soumission du formulaire si il manque une saisie sur une des autres zones, alors au moment du réaffichage la première listebox contient bien la dernière valeur sélectionnée mais la listebox liée est vide et rien si on essaye de la dérouler.
Il faut changer la première liste pour "réamorcer" la mécanique, ce qui est troublant pour l'utilisateur, puisque l'on est sur la bonne valeur.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages