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 :

controle de saisie liste déroulante + checkbox?


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut controle de saisie liste déroulante + checkbox?
    Bonjour,
    j'ai actuellement deux jsp , l'une dans laquelle il y a deux listes déroulantes liiées via ajax , et l'autre avec 4 checkbox.

    Ce que je souhaiterais mettre en place c'est un controle de saisie sur ces listes et checkbox notamment lorque j'utilisateur clique que un bouton sans avoir selectionné d'item.
    Pour que ce soit un peu plus parlant voici mon code:


    fonctions JS de ma jsp avec les listes:
    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
     
     
         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);
     
         }
     
         function loginUtilisateur(){
     
     		//var codeUtil = document.getElementById('selectUtil').options[document.getElementById('selectUtil').selectedIndex].value;
     		<%--  <% String idUtilisateur= codeUtil;
     			Iterator monIt = GetList.getUtilisateurList(idUtilisateur).iterator();
     			Utilisateur util= (Utilisateur)monIt.next();
     		%>	--%>	
     		alert('Vous etes maintenant loggé '+document.getElementById('selectUtil').options[document.getElementById('selectUtil').selectedIndex].text);
     	}

    code lié aux listes déroulantes liées:
    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
     
     
    						<!--  partie d'identification -->
     
     
     
    					  		<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>
     
    									</td>
    									<td>
    										<div id='utilisateurs' style='display:inline'>
     
    										<select name="utilisateurs" id="selectUtil" > 
     
     
    										   	 	<option value="vide">Choisir une structure</option>
     
     
    										</select>
    										</div>
    									</td>	
     
     
    								</tr>
    							</table>	
    							<br><br>
     
    			  					<div class="UI_EDITOR_TEXTFIELD">
    					  					<hr size="1" noshade="noshade" />
    			  							<input type="submit" class='formButton mainButton' value="Se connecter" onClick="loginUtilisateur()"/>
     
     
    			  					 </div>
    fonction JS de ma jsp checkbox:
    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
    		function verifSelection(){
     
     
    			cpt=0;
    			if(document.getElementById('chckLog').checked)
    			{	cpt++; }	
    			if(document.getElementById('chckMat').checked)
    			{	cpt++; }
    			if(document.getElementById('chckMut').checked)
    			{	cpt++; }
    			if(document.getElementById('chckDep').checked)
    			{	cpt++; }
     
    			alert('cpt= '+cpt);
    			if(cpt=0){
    				alert('/!\   Vous devez sélectionner au moins 1 catégorie !');
    			}
    code de ma jsp checkbox:
    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
    <body >
     
     
     
     
     
    <h1 class="boTitle"> 
      Formulaire de demande d'installation de logiciel 
    </h1>
    <form action="" method="POST">
    <h4 align="right"><%=utilisateurLog.getNom()%> <%=utilisateurLog.getPrenom()%></h4>
    <h4 align="right"> <input type="submit"  name="deco" value="Deconnexion" /> </h4>		
     
    		<!--  Onglet formulaire -->
     
    		<div class="tab-pane" id="mainTab">
     
    			<div class="tab-page">
    				  <table  cellspacing='3' cellpadding='3' border='0' class='FicheIndividuelle' width="100%" height="400px>                     
    				  	<tr>      
    				   		<td width="33%">
    				   		</td>
    				   		<td>
     
    						  		<br><hr size="1" noshade="noshade" /><br>
    								<table border align="center" >
    									<tr>
    										<td> Liste des actions possibles : </td>
    									</tr>
    									<tr>
    										<td><input  type="checkbox" id="chckLog" name="chckLog" onclick="//document.getElementById('validerChoix').style.visibility='visible'"> installation logicielle </input></td>
    									</tr>
    									<tr>
    										<td><input type="checkbox" id="chckMat" name="chckMat" onclick="//document.getElementById('validerChoix').style.visibility='visible'"> installation matérielle </input></td>
    									</tr>	 	
    					  				<tr>
    										<td><input type="checkbox" id="chckMut" name="chckMut" onclick="//document.getElementById('validerChoix').style.visibility='visible'"> Mutation </input></td>
    									</tr>
    					  				<tr>
    										<td><input type="checkbox" id="chckDep" name="chckDep" onclick="//document.getElementById('validerChoix').style.visibility='visible'"> Départ </input></td>
    									</tr>
    								</table>
     
    				  				<div class="UI_EDITOR_TEXTFIELD" align=center>
    						  			<hr size="1" noshade="noshade" />
     
    				  					<input type="submit" class='formButton mainButton' id="validerChoix" value="Valider mes choix"  onclick="verifSelection()"/>
    				  					&nbsp;&nbsp;		
    				  				</div>				    		
    				        </td>
    				        <td width="33%">
    				        </td>
    				    </tr>
    				  </table>
    			</div>
    		</div>
    </form>		
    </body>

    la servlet:
    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
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.debug("FormulaireDemandeServlet.doPost : " + request.getParameter("action"));
        HttpSession session;
        session = request.getSession();
     
        if(request.getParameter("utilisateurs")!=null){
        	BigDecimal idUtilisateur = new BigDecimal(request.getParameter("utilisateurs"));
        	//System.out.println(request.getParameter("utilisateurs"));
        	Utilisateur util = UtilisateurDAO.getInstance().findById(idUtilisateur);
     
        	session.setAttribute("utilisateurLog", util);
        	 getServletContext().getRequestDispatcher(JSP_PATH_DEMANDE+"formulaireDemandeSelection.jsp").forward(request, response);
        	//response.sendRedirect(JSP_PATH_DEMANDE+"formulaireDemandeSelection.jsp");
        }
        if(request.getParameter("deco")!=null){
        	session.removeAttribute("utilisateurLog");
        	getServletContext().getRequestDispatcher(JSP_PATH_DEMANDE+"formulaireDemande.jsp").forward(request, response);
        }
        if(request.getParameter("validerChoix")!=null){
        	if(request.getParameter("chckLog")!=null){
        		session.setAttribute("demandeLogicielle", true);
        	}
        	if(request.getParameter("chckMat")!=null){
        		session.setAttribute("demandeMaterielle", true);
        	}
        	if(request.getParameter("chckMut")!=null){
        		session.setAttribute("demandeMutation", true);
        	}
        	if(request.getParameter("chckDep")!=null){
        		session.setAttribute("demandeDepart", true);
        	}
     
        		getServletContext().getRequestDispatcher(JSP_PATH_DEMANDE+"formulaireDemandeLog.jsp").forward(request, response);
     
        }
      }
    Actuellement j'ai essayé de faire le controle en JS quand on clique sur le bouton mais le soucis c'est malgré ma fenetre alert, il lance la servlet apres.

    Je me demande donc comment controler et si je dois le faire au niveau de ma servlet ou en JS.



    Merci d'avance.

  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 : 37
    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, pour ceux que ca interesse j'ai finalement opté pour un controle dans ma servlet:
    J'ai créé une methode checkForm qui prend en parametre le nom de la jsp appelante via un input caché.
    Cette methode controle donc dans un cas si les listes déroulantes sont vides ou non, et dans l'autre si au moins 1 checkbox est coché; dans le cas contraire je stock un message d'erreur dans une List que je renvoie.
    Et dans ma methode doPost, je créée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List messages = checkFormulaire(request);
    puis je verifie, si ma liste contient ou non des données, si oui, je la stocke dans un attribut de ma session et je renvoie sur la jsp dans laquelle je verifie si ma liste de message est vide ou non et j'affiche les messages sur ma page.

    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
     <%
                                           List messages = (List)request.getAttribute("messages");
                                           if (messages!=null) {                  
                                                    Iterator it = messages.iterator();
                                                    while (it.hasNext()) {
                                                            String message = (String)it.next();                                     
                                        %>
    			            		<font color="red"><%=message %><br /></font>
    			            <%
                                              } // end while
                                           } // end if
                                        %>
     
    									<%
                                                                                    Exception e = (Exception)request.getAttribute("exception");
                                                                                    if (e!=null) {
                                                                                            %>
    											<font color="red"><%= e.getMessage() %><br /></font>
    											<%
                                                                                    }
    %>

    En esperant que ca aidera quelqu'un...

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

Discussions similaires

  1. controle de contenu (listes déroulantes)
    Par tipoulili dans le forum Word
    Réponses: 0
    Dernier message: 21/01/2014, 20h51
  2. [XL-2003] Contrôle de saisie liste déroulante
    Par gripoil dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/01/2013, 15h16
  3. Saisie liste déroulante tableau
    Par MenphisTimrid dans le forum Langage
    Réponses: 11
    Dernier message: 09/02/2012, 11h47
  4. Réponses: 1
    Dernier message: 13/12/2008, 20h05
  5. [DOM] Controle sur une liste déroulante
    Par pigeon11 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/11/2008, 20h18

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