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

AJAX Discussion :

[AJAX] listes liées en utilisant une JSP


Sujet :

AJAX

  1. #1
    Membre actif
    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
    Points : 238
    Points
    238
    Par défaut [AJAX] listes liées en utilisant une JSP
    Bonjour, voulant mettre en place deux listes liées avec AJAX, j'ai suivi le tuto de http://siddh.developpez.com/articles/ajax/

    La seule différence c'est que moi j'utilise pas du php mais une page JSP et du hibernate pour l'acces aux données.
    Voici donc ce 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
        function getXhr(){
         		var xhr = null; 
    			if(window.XMLHttpRequest){ // Firefox et autres
    				xhr = new XMLHttpRequest();
    				 alert('new XMLHttpRequest'); 
    			}
    			else if(window.ActiveXObject){ // Internet Explorer 
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			                alert('new activeXObject');
    			       } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
     
    			       }
    			}
    			else { // XMLHttpRequest non supporté par le navigateur 
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    				   xhr = false; 
    			} 
              return xhr;
    	}
     
     
     
     
     
         function go() {
         		//alert('valeur de la liste :'+
         		//document.getElementById('structures').options[document.getElementById('structures').selectedIndex].text+' id='+
         		//document.getElementById('structures').options[document.getElementById('structures').selectedIndex].value);
     
         		var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
     
     
    				xhr.onreadystatechange = function(){
     
    					alert('debug0 ='+xhr.readyState);
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 /* && xhr.status == 200*/){
    						alert('debug1');
    						leselect = xhr.responseText;
    						alert('leselect:'+leselect);
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('utilisateurs').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","/intranet/integration/demande/ListeUtilisateurs.jsp",true);
    				//xhr.open("POST","/intranet/integration/demande/formulaireDemande.jsp",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de la structure
    				sel = document.getElementById('structures');
    				idstruc = sel.options[sel.selectedIndex].value;
    				alert('idStruc = '+idstruc);
    				xhr.send("idStructure="+idstruc);
     
         }

    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
    <table border cellspacing="10px">
    					  			<tr >
    					  				<td > 
     
    								  		<select name="structures" id="structures" onChange="go()">
    								  		<option value="vide">Liste structures</option> 
    										<% 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"> 
     
    										<% if(request.getParameter("idStructure")!=null){
     
     
    												Iterator it2 = GetList.getUtilisateurList(/*request.getParameter("idStructure")*/13).iterator(); 
    												String p=null; 
    												while(it2.hasNext()){ 
    												Utilisateur util =(Utilisateur)it2.next(); 
    												p=util.getNom()+" "+util.getPrenom(); 
    												%> 
     
    												<option value="<%=util.getId()%>"> <%=p%></option> 
    												<%} 
    										   }else{%>
    										   	 	<option value="vide">Choisir une structure</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;
    	}
     
    }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <%
     
    	Iterator it2 = GetList.getUtilisateurList(/*request.getParameter("idStructure")*/13).iterator(); 
    												String p=null; 
    												while(it2.hasNext()){ 
    												Utilisateur util =(Utilisateur)it2.next(); 
    												p=util.getNom()+" "+util.getPrenom(); 
    												%> 
     
    												<option value="<%=util.getId()%>"> <%=p%></option> 
     
     
    %>

    En fait grace aux messages de debug que j'ai placé j'ai pu voir que tout se deroule bien jusqu'au if(xhr.readyState == 4

    Apres il m'affiche bien le debug1 mais au select, c'est le plantage, apparement ce serait dû à ma page ListeUtilisateurs.jsp qui serait incorrecte.


    Si vous pouviez y jeter un oeil , ou si vous aviez une solution pour eviter de devoir créer cette page en plus...



    Merci.

  2. #2
    Membre actif
    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
    Points : 238
    Points
    238
    Par défaut
    Bon finalement le soucis dans la jsp est résolu , une parenthèse manquante ^^

    Le probleme vient maintenant de la recuperation des données.

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

Discussions similaires

  1. [AJAX] Listes liées: quelle solution?
    Par Xavier1979 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/05/2007, 09h40
  2. [AJAX] Listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2007, 06h59
  3. [AJAX] listes liées : faire une redirection
    Par _nico42_ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2006, 13h28
  4. [AJAX] liste liée ajax: s'iou plait, cherchez l'erreur
    Par redwire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/09/2006, 20h26
  5. [AJAX]Listes liées multiples
    Par Schuss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 27/06/2006, 16h31

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