IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

Filtrer à partir du select ?


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut Filtrer à partir du select ?
    Bonjour,
    j'ai dans ma page jsp 2 champs select qui correspond à 2 listes :
    une liste des valeurs, et une liste des mouvement.
    chaque valeur peut avoir plusieurs mouvements.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <s:select list="listeValeurs" headerValue="-- Selectionner une valeur --" ></s:select>
    <s:select list="listeMouvements" listKey="mvtsId" listValue="mvtLib" headerKey="" headerValue="-- Selectionner un mouvement --"></s:select>
    je veux filtrer les mouvements en fonction de la valeurs sélectionnées.
    Comment je peut procéder ?
    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,

    1-Soit, dans le onchange du premier select, tu submit le formulaire et faire un filtre de la liste pour le mouvement.
    2-Soit tu utilises AJAX pour envoyer la valeur du premier select et récupérer le second select.

    A+.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 292
    Par défaut
    Merci pour ta réponse,
    justement je voulais utiliser AJAX, vu que j'ai déjà les 2 listes,
    mais comment peut-on faire ?
    Merci

  4. #4
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Bonjour,
    Moi aussi j'ai le même problème, Si quelqu'un me pricisé la 1er solution.
    Merci en avance.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    étape 1: afficher dans la page le premier select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onSelect="updatePage()" id='monPremierSelect'>...</select>
    et à l'emplacement du futur 'second select' mettre par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id='monSecondSelect'></div>
    étape 2: le javascript d'update de la page qui te permettra de faire un appel AJAX vers ton serveur web pour récupérer le code html du second select selon le choix fait dans le premier. quelquechose dans ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function updatePage(){
    var valueDuSelect1 = document.getElementById('monPremeirSelect').value();
    var htmlSelect2 = requeteAjax(valueDuSelect1 );
    document.getElementById('monSecondSelect').innerHtml = "<div id='monSecondSelect'>" + htmlSelect2 + "</div>";
    }
    étape 3: écrire une action struts qui retourne juste le code html du secondselect.

    pour la requête AJAX il y a pas mal de solutions possibles donc à vous de voir.

  6. #6
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Bonsoir,

    Prière de nous répondre.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Par défaut
    pour la solution 1 que tu demandes essadiki_ista, je ne vois aucunes difficultées:/

    pour accéder à une news sur un site, en générale l'url (GET) associée est de type www.site.xx?section=news&id=Y donc en gros c'est la même action qui va traiter toutes les news, et selon le paramètre id passé dans la requête, ton action va avoir un comportement différent et charger telle ou telle news.

    Sur le même principe, tu va avoir une seule action qui va préparer ta page jsp/html contenant tes deux 'select' selon un paramètre bien précis associé au choix fait via le premier 'select'.

    un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    <select id='monPremierSelect' name='monPremierSelect' onSelect='updatePage()'>
    <option value='1'>choix1</option>
    </select>
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function updatePage(){
    var valueDuSelect1 = document.getElementById('monPremeirSelect').value();
    window.location = "http://www.monsite.com/monAction.do?select1="+valueDuSelect1;
    }
    dans ton action, il te suffira de préparer les données de ta jsp à afficher de nouveau en fonction du paramètre passé seclect1.
    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
     
    action
    ...
    String select1 = request.getParameter("select1");
      List<LabelValueBean> maListSelect2 = new ArrayList<LabelValueBean>();
    if(select1!=null && select1.equals("choix1")){
    maListeSelect2.add(new LabelValueBean("1","choixSelect1"));
    maListeSelect2.add(new LabelValueBean("2","choixSelect2"));
    maListeSelect2.add(new LabelValueBean("3","choixSelect3"));
    }
    else{
    maListeSelect2.add(new LabelValueBean("4","choixSelect4"));
    maListeSelect2.add(new LabelValueBean("5","choixSelect5"));
    maListeSelect2.add(new LabelValueBean("6","choixSelect6"));
    maListeSelect2.add(new LabelValueBean("7","choixSelect7"));
    }
    request.setAttribute(maListSelect2 );
    ...
     
    jsp
    ...
    <select>
    <logic:iterate name="maListSelect2" id="objet">
    <option <bean:write name="objet" property="value">><bean:write name="objet" property="label"></option>
    </logic:iterate>
    </select>
    ...
    au final un changement dans le premier select rappelle l'action qui prépare la jsp afin de mettre à jours les données du second select. J'espère que ça t'aidera.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Filtrer un sous formulaire a partir d'un select
    Par EmmanuelleC dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/03/2013, 12h52
  2. Récupérer automatiquement des données à partir du Select
    Par sunatva dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 01/08/2010, 21h37
  3. effectuer des insertions à partir de Select
    Par miss_poopoucy dans le forum Oracle
    Réponses: 2
    Dernier message: 05/08/2009, 16h36
  4. filtrer à partir d'une combobox
    Par jonathanoudelet dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/08/2008, 15h59
  5. SELECT à partir du ROWNUM
    Par MrSimon dans le forum SQL
    Réponses: 5
    Dernier message: 10/06/2003, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo