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 :

Listes déroulantes liées ou cascade


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Listes déroulantes liées ou cascade
    Bonjour à tous,

    J'essaie de faire une liste déroulante liée a une autres liste.
    Dans mon cas je recupere les données de ma BBD sur les tables categorie et sousCategorie.

    Le select catégorie fonctionne, mais sousCatégorie ne me retoune pas le resultat souhaité.

    svp pouvez vous me dire ou se trouve le problème? j'ai éssayer plusieurs modifs mais rien

    voici le code des parties concernées. Je pense mon script n'est pas correct.

    merci

    Servlet:

    Nom : 1.JPG
Affichages : 166
Taille : 71,1 Ko


    Html :

    Nom : 2.JPG
Affichages : 161
Taille : 135,2 Ko


    Script :

    Nom : 3.JPG
Affichages : 162
Taille : 159,2 Ko

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 913
    Points
    913
    Billets dans le blog
    5
    Par défaut
    C'est une question Javascript (bah, quel horreur) et un lien avec les servlet à mon avis.

    Vu le code Java, je pense que l'on a une servlet (qui aujourd'hui est caché vu que tous le monde utilise Spring).

    Vu de très loin, je pense que c'est un problème de configuration servlet.

    Avant, c'était par web.xml.

    Maintenant, c'est par annotations.

    Il manque déjà le début de la servlet (en gros l'annotation).
    https://www.javatpoint.com/servlet-with-annotation

    En l'occurrence dans ton cas:*
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @WebServlet("/addAnnonce")*
    Ensuite, pour que ça marche, tu doit vérifier par le navigateur que http://localhost:8080/addAnnonce donne quelque chose.

    Le problème est ce que l'on appelle le content path (en l'occurrence http://localhost:8080).

    Il est dans le HttpRequest:
    https://jakarta.ee/specifications/se...servletrequest

    Avec l'objet request:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getContextPath()
    Soit avec JSTL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ${pageContext.request.contextPath}
    https://stackoverflow.com/questions/...th-better-than

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci pour votre retour.

    Le code fonctionne bien, les différentes annotions y sont.

    le 1ere select fonctionne bien.
    le 2eme qui pose probleme. (il n'applique pas vraiment le filtre en fonction du 1ere select)

    mon probleme vient sans doute du paramettre passé dans ma 2eme List.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Points : 913
    Points
    913
    Billets dans le blog
    5
    Par défaut
    Poster tout le code aiderait à comprendre.

    A mon avis, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getParameter("select")
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getParameter("cat")
    Car dans le javscript tu as:
    Qualité du code aussi, le if ne sert à rien. Il faut écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    selectCat = request.getParameter("cat");
    Directement.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Bonsoir,

    effectivement, j'ai fait la modif.
    Après quelques test, je me rend compte que la variable select qui est passé dans url (pour être récupérée dans le doGet) est toujours vide.

    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
     
    function listZone(parentSelect, childSelect)
    {
    	var xhr = getXhr();
     
    	xhr.onreadystatechange = function() {	
    		if(xhr.readyState == 4){
    			if (xhr.status == 200 || xhr.status == 0) {
    				select = xhr.responseText;
    		        document.getElementById(childSelect).innerHTML = select;
    		    }
    			else {
    				alert('Erreur :' +xhr.status + ' '+xhr.statusText);
    			}
    		}
    	};
    	catSelect = document.getElementById(parentSelect);
    	idParent = catSelect.options[catSelect.selectedIndex].value;
    	xhr.open("GET","AddAnnonce?action=addAnnonce&listZone="+childSelect+"&select="+idParent,true);
     
    	xhr.send(null);
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
     
    		HttpSession session = request.getSession();
     
    		String selectCat =  request.getParameter("select");
     
    		System.out.println("tttt" + selectCat);
    existe t'il une maniere speciale de recuperer un select?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Je pense mon probleme vient de la function listZone.

    le but est qu'il recoive parentSelect et qu'il le tranfert via url pour que je puisse le recuperer dans le doGet.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Probleme resolu!!!

    je recuperais l'index (int) de ma liste au lieu de recuperer la valeur liés a l'index.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <option value="${listCa.nomCat}"> ${listCa.nomCat} </option>
    Merci encore @PhilippeGibault

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

Discussions similaires

  1. Debug script listes déroulantes liées
    Par AnTiX dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/04/2005, 12h03
  2. Griser 1 liste déroulante liée à une autre, pb de concaténat
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2005, 16h45
  3. listes déroulantes liées
    Par k4eve dans le forum Struts 1
    Réponses: 3
    Dernier message: 26/04/2004, 15h11
  4. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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