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

Servlets/JSP Java Discussion :

Affichage de listes déroulante


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut Affichage de listes déroulante
    Bonjour,
    J'ai un petit souci avec 2 JSP. L'une sert a ajouter un objet et l'autre sert a le modifier. Lors de l'ajout, on choisit une catégorie pour cet objet (sur 3 niveaux, par exemple : sculpture -> animal -> loup) donc des listes déroulantes apparaissent au fur et a mesure de nos choix de catégories peres.

    Le code suivant correspond a l'ajout :
    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
    <tr>
                <td valign="top"><div class="admin_ajout_ligne" ><label for="rechercheRubrique" id="rechercheRubriqueLbl"><%=CatalogueBundle.getMessage("rechercheRubrique", "catalogue", localeCourant)%></label></div></td>
                <td><div class="admin_ajout_ligned_noinput" ><select name="listeDeroulanteRecherche1" id="listeDeroulanteRecherche1" value="<%=si.getRechercheTitre()%>" onchange="getSousRubriquesAdmin(document.getElementById('listeDeroulanteRecherche1'),document.getElementById('niveau2'),1,'oui')">
                            <option value=""><%=CatalogueBundle.getMessage("rechercheSelectionner", "catalogue", localeCourant)%></option>   
                            <%
                            List<AbstractCategorie> listeRubrique = RubriquePeer.loadAll();
                            for (int i = 0; i < listeRubrique.size(); i++) {
                            String rubrique = listeRubrique.get(i).getId();
                            %>
                            <option value="<%=rubrique%>"><%=listeRubrique.get(i).getNom()%></option>
                            <%
                            }
                            %>
                    </select></div>
                    <div id="niveau2"> </div>
            </td></tr>
    La méthode getSousRubriquesAdmin est en Ajax et permet de retrouver les catégories fils.

    Maintenant, lors d'une modification de cet objet, je souhaiterais faire réapparaitre les listes déroulantes correspondants a mes choix initiaux (par exemple : ossements -> figurine ou sculpture ou sculpture -> divers -> patrimoine suivant le nombre de catégories enfants choisis) mais je ne vois pas du tout comment m'y prendre et je ne pense pas pouvoir réutiliser mes méthodes ajax !!

    Merci d'avance pour votre aide !!!

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    Je mets également mes méthodes AJAX :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    function getSousRubriques(pere,fils,niveauPere,userAuthentifie)
        {   
          if (niveauPere<3 || userAuthentifie=="oui")
          {
     
            var index = pere.selectedIndex;
            var valeur = pere.options[index].value
     
            var url = 'RemplirSousRubriques?listeSelect=' + valeur;
     
            if (window.ActiveXObject)
            {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest)
            {
                httpRequest = new XMLHttpRequest();
            }
     
            httpRequest.open("GET", url, true);
            httpRequest.onreadystatechange = function() {processRequestSousRubriques(fils,niveauPere,userAuthentifie); } ;
            httpRequest.send(null);
          }  
       }
     
        function processRequestSousRubriques(objet,niveauPere,userAuthentifie)
        {
     
            if (httpRequest.readyState == 4)
            {
                if(httpRequest.status == 200)
                {   
     
                    //la variable contient le xml retourner par le servlet
                    var profileXML = httpRequest.responseText;
     
     
                    //on met a jour le html
                    updateHTMLSousRubriques(profileXML,objet,niveauPere,userAuthentifie);
     
                }
                else
                {
                    alert("Erreur  \n"+ httpRequest.status +":"+ httpRequest.statusText);
                }
            }
        }
     
     
        function updateHTMLSousRubriques(profileXML,objet,niveauPere,userAuthentifie)
        {
     
     
            objet.innerHTML="";
     
            var profileBody = profileXML;
            var valeurs = new Array();
            var val;
     
            var texteAInclure;
     
            valeurs = profileBody.split("|");
            if (valeurs[0]!="")
            {
     
            var selectbox = document.createElement("SELECT");
     
            var niveau = niveauPere+1;
            selectbox.id="listeDeroulanteRecherche"+niveau;
     
            var nouveauDiv = document.createElement("DIV");
            nouveauDiv.id="niveau"+(niveau+1);
     
            selectbox.onchange= "getSousRubriques("+selectbox.id+",document.getElementById('"+nouveauDiv.id+"'),"+niveau+",'"+userAuthentifie+"');valeursRubriquesMAJ(this.value,"+niveau+");";
     
            //Ajout du début du select
            texteAInclure="<select id=\""+selectbox.id+"\" onchange=\""+selectbox.onchange+"\">";
     
            //Ajout d'une ligne car la sélection ne se fait pas si il n'y a qu'une seule valeur
            texteAInclure+="<option value=\"vide\">"+"---S&eacute;lectionner---"+"</option>";
     
     
            for (var i=0; i < (valeurs.length-1);i++){
     
                val = valeurs[i].split("-");
     
                texteAInclure+="<option value=\""+val[1]+"\">"+val[0]+"</option>";
     
            }
     
            texteAInclure+="</select>";
            objet.innerHTML=texteAInclure;
     
            objet.appendChild(nouveauDiv);
     
            }
     
        }

Discussions similaires

  1. [DOM] affichage naviguateur liste déroulant lié
    Par matt16matt dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/05/2008, 19h10
  2. Réponses: 7
    Dernier message: 24/01/2008, 08h51
  3. affichage =/= valeur (liste déroulante)
    Par laurent.c123 dans le forum JSF
    Réponses: 2
    Dernier message: 05/06/2007, 13h08
  4. Pb d'affichage avec liste déroulante
    Par Tintou dans le forum Access
    Réponses: 5
    Dernier message: 02/05/2007, 17h28
  5. Aide pour un affichage de listes déroulantes
    Par jfjava2002 dans le forum Langage
    Réponses: 1
    Dernier message: 02/03/2006, 18h01

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