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 1 Java Discussion :

remplir une combobox en fonction d'un autre


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut remplir une combobox en fonction d'un autre
    bonjour
    j'ai 2combobx je veux remplir le 2eme combobx en fonction de la valeurs saisie dans le 1er combo, sachant que le 2eme combo est desactiver au debut et apres la selection dans le 1er il devien actif

    s'il deja une discussion sur ça pouvez_vous me donner le lien SVP

    merci d'avance

  2. #2
    Membre actif Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 263
    Points
    263
    Par défaut
    ?? Je comprends pas, si la première JComboBox est déactivée, comment peux-tu y sélectionner des valeurs?

    Dans le cas contraire, tu peux mettre quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (String)myJComboBox1.getSelectedItem();
    qui te renvoie sous forme d'un String l'item sélectionné dans le premier JComboBox
    et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myJcomboBox2.addItem(item);
    qui mets dans la deuxième la valeur que tu as sélectionné dans la première.

    Soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myJcomboBox2.addItem(myJComboBox1.getSelectedItem());
    Cordialement

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    bon merci pour votre reponse mais
    je travaille avec struts et non pa java simple (??? on est dans le forum struts)

    et pour mon pb je veux remplir la liste du 2eme combo en fonction de la valeur saisie dans le 1er combo (faire un autre traitement sur cette valeur) et non pas par la valeur saisie dans le 1er combo

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Peux-tu soumettre le formulaire pour le chargement de la liste 2 ou dois-tu rester sur la page et ne charger que la combo 2 ?

    Dans le cas 1, struts-layout fournit la fonctionnalité
    Dans le cas 2, il va falloir passer par de l'ajax

    Cette problématique à déjà été traitée mais il faudrait faire une recherche sur le forum pour retrouver...

    A+

  5. #5
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Pourquoi ouvrir une nouvelle discussion à ce sujet ?
    On en a déjà longuement débattu dans celle-ci ou même celle-ci.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    bonjour
    voila je revien sur ce pb, j'ai essayé de comprendre le code qui est dans la discussion suivante

    c'est le cas qui je cherche mais je comprend pas bien, par exemple pour le 2eme combo, il rera remplir en fonction du premier combo mais quand? normalement quand on fait un changement dans le 1er combo (onchange)!!
    et pour la methode

    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
     
    public List getListProfil(String libelle)
    {
        List listProfil=new ArrayList() ;
        Statement st= con.createStatement();
        ResultSet rs=st.executeQuery("select profil_libelle from gss_article_profil where profil_statut='A' and art_art_libelle='"+libelle+"'");
     
       while (rs.next())
       {
        	listProfil.add(rs.getString(profil_libelle));
       }
       rs.close() ;
       st.close() ;
       return listProfil ;
    }
    je vois pas ou je l'a mis, dans l'action ou dans la classe Article?

    bon pour ce pb j'ai essayé de faire une solution de mon côté voici le code
    le vue:
    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
     
    <layout:form action="/preactive.do" method="post">
     
      <layout:select property="destinataire" key="Destinataire :" onchange="setHidden('remplir');document.activationpostForm.submit();">
                   <layout:option value=""></layout:option>
                   <layout:options property="listDest"></layout:options>
                 </layout:select>
     
                 <layout:space></layout:space>
     
                  <layout:select property="libelle" key="Libelle :">
                   <layout:option value=""></layout:option>
                   <layout:options property="listLib"></layout:options>
                 </layout:select>
     
     </layout:form>
    voici l'action 1 qui prépare la vue , au debut je remplis le 1er combo par une requette et le 2eme combo par " "
    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
     
    public class PreactivpostAction extends Action {
     
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws SQLException {
    		ActivationpostForm activationpostForm = (ActivationpostForm) form;
     
    rs1=st1.executeQuery("select distinct dest_type from gss_destinataire where dest_type not in('FOURNISSEUR','PARTENAIRE')");
     
    // le 1er combo
    while (rs1.next())
    		{
    			dest = rs1.getString(1).trim();
    			listDest.add(dest);
    			System.out.println(dest);
    		}
     
    //le 2eme combo
    listLib.add("");
     
    activationpostForm.setListDest(listDest);
    activationpostForm.setListLib(listLib);
    }
    puis quand je change une valeur dans le 1er combo (le type de destinataire) je change le contenu du 2em combo (la liste des nom du destinataire) dans l'action suivante:

    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
     
    public ActionForward remplir(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws SQLException {
    		ActivationpostForm activationpostForm = (ActivationpostForm) form;
    		String combo = activationpostForm.getDestinataire();
     
    		Connexion connexion=new Connexion();
    		Connection con=connexion.createConnection();
    		Statement st= null;
    		ResultSet rs= null;
    		ArrayList listLib= new ArrayList();
    		String lib;
     
    		st=con.createStatement();
    // la requete en fonction de la valeur saisie dans le 1er combo
    		rs=st.executeQuery("select dest_nom from gss_destinataire where dest_type='"+combo+"'");
    	while (rs.next())
    		{
    			lib = rs.getString(1).trim();
    			listLib.add(lib);
    			System.out.println(lib);
    		}
    		activationpostForm.setListLib(listLib);
     
    		return mapping.findForward("remplirCombo"); 
     
    	}
    voila cette solution marche tres bien mais le problème que j'ai,c'est dans ma vue, aprés que je finisse les traitement, je valide pour enregistrer dans la base de donnée, donc je recupère le contenu des deux combox pour l'insérer dans ma base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public ActionForward valider(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response) throws SQLException {
    		ActivationpostForm activationpostForm = (ActivationpostForm) form;
    		Connexion connexion=new Connexion();
    		Connection con=connexion.createConnection();
     
    String dest = activationpostForm.getDestinataire();
    		System.out.println("dest "+dest);
    		String libe = activationpostForm.getLibelle();
    		System.out.println("lib "+libe);
    }
    j'ai essayé de voir le contenue dans la console avec System.out
    alors il m'affiche la valeur saisie dans la 1er combo (c'est normal) mais il m'affiche pas la valeur saisie dans le 2eme combox !! il m'affiche un vide, et apres la 2eme saisie il m'affiche la valeur du 1er combo et l'ancienne valeur saisie dans le 2eme combo !!!!!

    Exp:
    1ere tentative
    je saisi
    dans le combo 1, val1
    dans le comno 2, val2
    il m'affiche a la console:
    dest = val1
    lib= val2 = (un vide)

    1eme tentative
    je saisi
    dans le combo 1, val3
    dans le comno 2, val4
    il m'affiche a la console:
    dest= val3
    lib=val2

    j'espère que c'est claire pour vous
    Svp adiez moi, je suis bloqué

  7. #7
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    A mon avis, quand tu valides, tu ne dois pas cliquer sur un bouton submit mais sur un lien.
    Est-ce bien le cas ?
    Si c'est bien le cas, cela expliquerait pourquoi tu ne récupères pas la valeur sélectée dans la deuxième combo : lorsqu'on clique sur un lien, le formulaire n'est pas soumis.

  8. #8
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 187
    Points : 65
    Points
    65
    Par défaut
    ahh oui c vrais ta raison j'utilise un link au lieu un submit

    ça marche merci bcp

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

Discussions similaires

  1. Remplir une combobox en fonction d'une autre et d'une textbox
    Par celthi dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/12/2014, 17h45
  2. [AC-2007] Remplir une combobox en fonction d'une valeur de formulaire
    Par Bluuuh dans le forum IHM
    Réponses: 3
    Dernier message: 11/07/2010, 22h16
  3. Remplir une combo en fonction d'une autre
    Par loic20h28 dans le forum Visual Studio
    Réponses: 35
    Dernier message: 29/01/2008, 17h48
  4. remplir un combobox en fonction d'un autre
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/07/2007, 17h19
  5. Remplir un combobox en fonction d'un autre
    Par emkka dans le forum Composants VCL
    Réponses: 10
    Dernier message: 30/04/2006, 19h17

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