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 :

[jsp+js] élément selectionné dans liste déroulante


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut [jsp+js] élément selectionné dans liste déroulante
    Bonjour,
    je développe actuellement une application j2ee avec donc des jsp/servlet ainsi qu'hibernate.

    Sur ma jsp , j'ai actuellement deux listes déroulantes : les services , les utilisateurs.
    Ce que je voudrais c'est les lier entre elles , à savoir , afficher les utilisateurs du service selectionné, mais sans utiliser ajax.

    J'ai donc ma premiere liste, un bouton qui lance une fonction js qui est sencée charger les données de ma seconde liste, or je n'y arrive pas

    Voici le code que j'ai actuellement :

    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
     
     
    						<!--  partie d'identification -->
     
     
    					  		<table border cellspacing="10px">
    					  			<tr >
    					  				<td > 
     
    								  		<select name="structures" id="structures"> 
    										<% Iterator it1 = GetList.getStructureList().iterator(); 
                                                                                    String s=null; 
                                                                                    while(it1.hasNext()){ 
                                                                                    Structure struct =(Structure)it1.next(); 
                                                                                    s=struct.getNom(); 
                                                                                    %> 
    										<option value="<%=struct.getId()%>"> <%=s%></option> 
    										<%}%> </select>
     
    										<input type="button" value="voir" onClick="chargerUtilisateurs()" />
    									</td>
    									<td>
    										<select name="utilisateurs"> 
    										<option value="vide"></option>
    										<% Iterator it2 = GetList.getUtilisateurList().iterator(); 
                                                                                    String p=null; 
                                                                                    while(it2.hasNext()){ 
                                                                                    Utilisateur util =(Utilisateur)it2.next(); 
                                                                                    p=util.getNom()+" "+util.getPrenom(); 
                                                                                    %> 
     
    										<option value="<%=util.getNom()%>.' '.<%=util.getPrenom()%>"> <%=p%></option> 
    										<%}%> </select>
    									</td>	
     
     
    								</tr>
    							</table>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         function chargerUtilisateurs() {
     
         }

    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
    public class GetList {
     
     
    	public static List getStructureList() 
    	{ 
    	Session session = HibernateUtil.currentSession(); 
    	List structures = null; 
    	try{ 
     
     
    	    structures = StructureDAO.getInstance().findAll("nom");            
     
     
    	}catch(Exception ex){ 
    	ex.printStackTrace(); 
    	} 
    	return structures; 
    	} 
     
    	public static List getUtilisateurList(int id) 
    	{ 
    	Session session = HibernateUtil.currentSession(); 
    	List utilisateurs = null; 
    	try{ 
     
     
    		//utilisateurs = UtilisateurDAO.getInstance().findAll("nom");            
     
     
    	    Query query=session.createQuery("select nom,prenom from Utilisateur where id_compte in ( select id_compte from affectation where id_structure="+id); 
    	    utilisateurs =query.list(); 
     
     
    	}catch(Exception ex){ 
    	ex.printStackTrace(); 
    	} 
    	return utilisateurs; 
    	}

    Ce qu'il faudrait c'est que je puisse recuperer l'element selectionné dans la liste et lancer une requete en prenant cet element en parametre d'entrée pour ensuite charger les utilisateurs correspondant.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut
    Bon, je sais pas si ce sera possible mais j'suis en train d'essayer avec cette base de code :

    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
         function updateUtilisateurs () {
    			var monSelect = document.getElementById("utilisateurs");
    			monSelect.options.length = 0;
    			var i=0;
    			var struct = document.getElementById('structures').options[document.getElementById('structures').selectedIndex].value;
    			<% Iterator it2 = GetList.getUtilisateurList(%>+struct+<%).iterator(); 
                            String p=null; 
                            while(it2.hasNext()){ 
                            Utilisateur util =(Utilisateur)it2.next(); 
                            p=util.getNom()+" "+util.getPrenom(); 
                            %> 
     
     
    			<%}%>
     
     
    			for (i=0;i<=<%=it2%>;i++) {
    			// permet de choisir le champ à definir par défaut
     
    			monSelect.options[monSelect.length] = new Option(<%=p%>,key);
     
    			}
     
    	}

    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
    					  		<table border cellspacing="10px">
    					  			<tr >
    					  				<td > 
     
    								  		<select name="structures" id="structures" onChange="updateUtilisateurs()"> 
    										<% Iterator it1 = GetList.getStructureList().iterator(); 
                                                                                    String s=null; 
                                                                                    while(it1.hasNext()){ 
                                                                                    Structure struct =(Structure)it1.next(); 
                                                                                    s=struct.getNom(); 
                                                                                    %> 
    										<option value="<%=struct.getId()%>"> <%=s%></option> 
    										<%}%> </select>
     
    										<input type="button" value="voir" onClick="chargerUtilisateurs()" />
    									</td>
    									<td>
    										<select name="utilisateurs" id="utilisateurs"> 
    										<option value="">----</option>
    									<%-- 	
    										<% Iterator it2 = GetList.getUtilisateurList().iterator(); 
    										String p=null; 
    										while(it2.hasNext()){ 
    										Utilisateur util =(Utilisateur)it2.next(); 
    										p=util.getNom()+" "+util.getPrenom(); 
    										%> 
     
    										<option value="<%=util.getId()%>"> <%=p%></option> 
    										<%}%> 
    									--%>	
    										</select>
     
    									</td>	
     
     
    								</tr>
    							</table>

    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
    public class GetList {
     
    	public static List getStructureList() {
    		Session session = HibernateUtil.currentSession();
    		List structures = null;
    		try {
     
    			structures = StructureDAO.getInstance().findAll("nom");
     
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		}
    		return structures;
    	}
     
    	public static List getUtilisateurList(int id) {
    		Session session = HibernateUtil.currentSession();
    		List utilisateurs = null;
    		String maRequete = "from Utilisateur where id in ( select utilisateur from Affectation where structure="	+ id+")";
    		try {
     
    			 utilisateurs = UtilisateurDAO.getInstance().find(maRequete);
    			// utilisateurs = UtilisateurDAO.getInstance().findAll("nom");
    			 /*
    			SQLQuery query = session
    					.createSQLQuery("select * from compte where ID_COMPTE in ( select ID_COMPTE from Affectation where ID_STRUCTURE="	+ id+")");
     
     
    			//Query query = session
    			//.createSQLQuery("select * from Utilisateur where id in ( select utilisateur from Affectation where fonction="	+ id+")");
    			*/
     
     
    			//utilisateurs = query.list();
     
     
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		}
    		return utilisateurs;
    	}
     
    }


    En gros j'essaye de lancer une requete Hibernate via JSP, cette requete me renvoie une Liste en java et j'essaye d'exploiter les données de cette liste pour ensuite via javascript les ajouter dans ma liste déroulante.

    Vous en pensez quoi? fesable?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut
    hm bon finalement jvais passer par du ajax, mais là je vois vraiment pas comment je peux faire, j'ai ca pour l'instant :

    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
        function updateUtilisateurs () {
     
    		var xhr; 
    	    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    	    catch (e) 
    	    {
    	        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
    	        catch (e2) 
    	        {
    	          try {  xhr = new XMLHttpRequest();     }
    	          catch (e3) {  xhr = false;   }
    	        }
    	     }
     
    	    xhr.onreadystatechange  = function()
    	    { 
    	         if(xhr.readyState  == 4)
    	         {
    	              if(xhr.status  == 200) 
    	                alert("Received:"  + xhr.responseText); 
    	                // document.getElementByID("utilisateurs").option[0].value="Received:"  + xhr.responseText; 
    	              else 
    	                 alert("Error:"  + xhr.status); 
    	                 //document.getElementByID("utilisateurs").option[0].value="Error code " + xhr.status;
    	         }
    	    }; 
     
     
     
    	//var frm = document.forms[0];
    	//if (frm!=null) {
     
    		var idx = document.getElementById('structures').options[document.getElementById('structures').selectedIndex];
    		//frm.elements['inv1.exitTask.tvariable.Code_Service.string'].selectedIndex;
    		//frm.elements['inv1.exitTask.tvariable.Code_Service.string'].value = frm.elements['inv1.exitTask.tvariable.Code_Service.string'].options[idx].text;
    		var codeService = document.getElementById('structures').options[document.getElementById('structures').selectedIndex].value;
     
    	   	// Création de l'objet
    		//var XHR = new XHRConnection();		
     
    		// Chargement de la page
    		var url;
    		url = "/intranet/integration/demande/FormulaireDemande?codeService="+codeService;
    		//alert("changeService"+url);		
    		//XHR.sendAndLoad(url, "GET", callBackChangeService);
    	//}
     
     
     
     
     
     
     
    	   xhr.open( "GET",url ,  true); 
    	   xhr.send(null); 
     
     
     
    	}

    Pour moi ce qu'il faudrait c'est que des qu'on selectionne un element de la liste deroulante, ajax fasse appel à la servlet en passant le code du service en parametre de la requete ( ce que je pense avoir fait dans le code actuel).

    Dans ma servlet j'ai ca pour l'instant dans la methode doGet() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        if (request.getParameter("codeService")!= null){
     
     
        }
    Je verifie donc si le parametre codeService existe , si oui , il devrait y avoir un traitement...

    Mais apres je bloque , comment exploiter ce code et lancer la requete sur la base


    Si quelqu'un pouvait me filer un coup de main ....

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/09/2019, 22h36
  2. [Toutes versions] Recuperer la valeur de l'élément selectionné dans une liste déroulante
    Par camole88 dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/06/2019, 12h00
  3. [MySQL] Selectionner bonne donnée dans liste déroulante
    Par rastacouaire dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/02/2009, 12h21
  4. Réponses: 3
    Dernier message: 03/07/2008, 11h44
  5. Réponses: 1
    Dernier message: 12/11/2007, 14h42

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