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 :

Garder les éléments selectionnés après rechargement de page


Sujet :

Struts 1 Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 161
    Points : 77
    Points
    77
    Par défaut Garder les éléments selectionnés après rechargement de page
    Bonjour,
    j'ai un formulaire avec une liste et un bouton "+" qui permet de rajouter une ligne au tableau avec une autre liste et un autre bouton "+".
    Ceci me donne un tableau dynamique qui permet a l'utilisateur de choisir le nombre d'élément qu'il souhaite selectionné.

    mon code jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <logic:iterate id="commandesb" name="ListeCommande">
    <tr> <td>
              <html:select property="listeCommandeChoisi">
                    <html:options collection="commandesList" property="nom" labelProperty="nom"></html:options>
             </html:select>
          </td>
           <td>
               <input type=button onclick="window.location='listeCommandes.do?action=add';" value="+" class="boutonForm" />
           </td>
    </tr>
    </logic:iterate>
    Mon action listeCommandes.do est appelé avant la jsp pour remplir mon select avec la collection commandesList.Il remplis egalement ListeCommande qui est en fait le nombre de select qu'il y aura dans le tableau.
    Lorsque l'utilisateur appuie sur le bouton +, je rajoute un élément dans ListeCommande.
    Lorsqu'il recharge la page il me rajoute bien un select mais ce que l'utilisateur avaient selectionné avant est perdu. J'ai mis un value ="toto" dans le select mais ca ne fonctionne pas. Je ne sait même pas comment récupérer l'élément selectionné a part peu être avec le lien : listeCommande.do?commande="MANGER", ensuite l'ajouter dans une variable et arriver a le rajouter dans la jsp...

    Je ne fait pas de submit parceque lorsque je fait un submit, j'ai une autre action qui me récupère bien les éléments choisi par l'utilisateur (listeCommandeChoisi) et ensuite me redirige vers une autre jsp.

    listeCommande.do appelé avant la jsp et lors du clique sur le bouton "+" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if(session.getAttribute("ListeCommande")!=null){
            	ListeCommande = (ArrayList<Commande>)session.getAttribute("ListeCommande");
            	Commande com = new Commande();
            	com.setNom("toto");
            	ListeCommande.add(com);
            }
            else{
            	ListeCommande = new ArrayList<Commande>();
            	ListeCommande.add(new Commande());
            }
            session.setAttribute("ListeCommande", ListeCommande);


    C'est un peu compliqué a expliquer, j'espère que j'ai été clair.

    Merci de vos réponses

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 161
    Points : 77
    Points
    77
    Par défaut
    Bonjour,
    j'ai trouvé une piste de solution mais ca ne marche pas, si quelqu'un a une idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <logic:iterate id="commandesb" name="ListeCommande" indexId="index">
    	<tr> <td><html:select property="listeCommandeChoisi" value="<bean:write name="commandesb" property="nom"/>">
                               <html:options collection="commandesList" property="nom" labelProperty="nom"></html:options>
                      </html:select>
                  </td>
    	</tr>
    </logic:iterate>
    Ma valeur par defaut doit se trouver dans le value="valeurParDefaut" du select. Mettre le bean entre "" ne fonctionne pas. Je ne sait pas comment faire pour récupéré ma liste de valeur par defaut et la mettre dans mes select.

    Merci de votre aide.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 161
    Points : 77
    Points
    77
    Par défaut
    J'ai trouvé une solution à mon problème, je la met pour ceux qui aurait le même problème que moi.

    la jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <logic:iterate id="commandesb" name="commandeForm" property="listeCommandeChoisi" indexId="index">
    	<tr>
                <td>
                  <html:select property="listeCommandeChoisi[${index}]">
                       <html:optionsCollection property="commandesList" value="nom" label="nom"/>
                    </html:select>
                </td>
    	</tr>
    </logic:iterate>
    Dans l'action qui recharge ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String[] newCom = new String[((ChoixCommandesForm) form).getListeCommandeChoisi().length+1];
    System.arraycopy(((ChoixCommandesForm) form).getListeCommandeChoisi(), 0, newCom, 0, ((ChoixCommandesForm) form).getListeCommandeChoisi().length);
    ((ChoixCommandesForm) form).setListeCommandeChoisi(newCom);
    Je crée un tableau avec une longueur de +1 pour qu'au rechargement de ma page j'ai une liste de plus. Seule la dernière valeur du tableau n'est pas défini, les autres sont les éléments selectionné par l'utilisateur précédement.
    Je sait pas trop si c'est compréhensible mais bon tant pis !!

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

Discussions similaires

  1. Charger les fichiers JS après que la page soit affichée
    Par Logarithmix dans le forum jQuery
    Réponses: 3
    Dernier message: 04/01/2012, 12h13
  2. garder les valeurs saisies apres rechargement de la page
    Par LePassager dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 24/01/2010, 10h17
  3. Récupérer tous les éléments selectionnés d'un select multiple
    Par xillibit dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/01/2010, 18h52
  4. Réponses: 4
    Dernier message: 06/11/2007, 11h44
  5. Réponses: 9
    Dernier message: 16/05/2007, 17h14

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