Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-12-2009 23:17:48

Stoomm
Membre
Date d'inscription: 06-05-2009
Messages: 48

[Résolu] MAJ d'un FilteringSelect

Bonjour tout le monde,

Je galère sur un problème et mes recherches restent infructueuses.

Je cherche tout simplement à mettre à jour, en javascript, une filteringSelect sans recharger ma page.
Je pensais au début le faire en ajax mais cela me pose finalement problème (aspect du controle et autre mésaventures).

J'ai vu ensuite des exemples avec le "ItemFileReadStore" mais là encore, je bloque.

Quelqu'un aurait il un exemple simple sous la main pour faire cette petite chose ?

Merci d'avance pour le coup de main smile

Dernière modification par Stoomm (03-12-2009 16:30:58)

Hors ligne

 

#2 03-12-2009 16:08:40

Stoomm
Membre
Date d'inscription: 06-05-2009
Messages: 48

Re: [Résolu] MAJ d'un FilteringSelect

Re à tous,

Après bcp de temps passé dessus, je me suis inspiré d'un exemple trouvé sur le net que je vous livre ici :

Code:

<html>
<head>
  <title>Test Two Stores</title>
  <style type="text/css">
    @import "js/dojotoolkit/dijit/themes/tundra/tundra.css";
    @import "js/dojotoolkit/dojo/resources/dojo.css";
  </style>
                
  <script type="text/javascript" src="js/dojotoolkit/dojo/dojo.js" 
    djConfig="isDebug:false, parseOnLoad: true, usePlainJson: true"></script>

  <script type="text/javascript">
    dojo.require("dojo.data.ItemFileReadStore");
    dojo.require("dijit.form.FilteringSelect");
    dojo.require("dojo.parser");
  </script>

  <script type="text/javascript">
    var majorList = {identifier:"major",items:[{major:"Atl",label:"Atl"},{major:"NYC",label:"Atl"}]};
    var majorStore = new dojo.data.ItemFileReadStore({data: majorList});
    var secondList = {identifier:"name",items:[{major:"Atl",name:"Atlanta"},{major:"NYC",name:"New York City"}]};
    var secondStore = new dojo.data.ItemFileReadStore({data: secondList});
    function getData(selectedValue){
      secondStore = new dojo.data.ItemFileReadStore({data: secondList});
      secondStore.fetch({
        query: { major: selectedValue },
          onComplete: getOptions,
          onError: errorHandler
        });     
    }

    var getOptions = function( items, request )
      {
        var tmpStore = new dojo.data.ItemFileReadStore({data:{identifier:'name',items:items}});
        dijit.byId("secondBox").store = tmpStore;
        dijit.byId("secondBox").setDisplayedValue('');
      }

    var errorHandler = function(error, request){
      console.debug(error);
    }        
  </script>
               
</head>
<body class="tundra">

                     
     <input dojoType="dijit.form.FilteringSelect"
                store="majorStore"
                searchAttr="major"
                name="majorsBox"
                onChange="getData"
                id="majorsBox"
                />
               
     <input dojoType="dijit.form.FilteringSelect"
              store="secondStore"
                searchAttr="name"
                name="secondBox"
                id="secondBox"
                />

</body>
</html>

Cela m'a bien aidé. En plus des exemples ici : http://docs.dojocampus.org/dijit/form/FilteringSelect

Si quelqu'un à besoin d'aide... wink

A pluche smile

Dernière modification par Stoomm (03-12-2009 16:30:44)

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