Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau de booleen

    24 mai 2019 à 18:29:49

    Bonjour, je viens de commencée JEE et j'ai du mal a tout saisir, je dois passée a coté d'un élément important. J'ai crée un tableau de booleen en JSP, C'est un planning de disponibilité, j'ai donc besoin d'enregistrer et les heures et les dates en en-tete dans ma base.

    Le probleme est que dans ma base au moment du insert j'ai les 2 enregistrements en meme et si je clic sur la cellule "neuf" dans SQL j'ai les 2 champs qui sont a "1" car il ne repere pas le clic d'une cellule précise. Je m'embrouille le cerveau dans ma methode de récupération. Je ne comprends pas pourquoi le javascript ne retourne pas le true ou false.

    JSP:

    <form method="post" action="connexion" id="tableau">
            <table>
      <thead>
        <tr>
          <th></th>
          <th name="lundi8h">${calendrier.getColumnName(1)}</th>
       <th name="mardi8h">${calendrier.getColumnName(2)}</th>
     
        </tr>
      </thead>
      
      <tbody>
        <tr id="huit">
          <th>8h-9h</th>
          <td name="huit" value="huit" onclick="changeColor(this)" > </td>
          <td onclick="changeColor(this)" name = "neuf" value="neuf"> </td>
          </tr>
    
    
      </tbody>
    </table>
    	
    <input type="submit" value="Valider" name="submit3"/>
    </form>
          

    Methode Javascript qui devrait me dire si cellule est verte, devrait me renvoyé true mais cela ne fonctionne pas : 

    function changeColor(elm){
    	var el = elm.style;
    	
    	if(el.backgroundColor == '' || el.backgroundColor == 'white')
    	{
    		el.backgroundColor = 'green';
    		return true;
    	}else{
    		el.backgroundColor = '';
    		return false;
    	}
    }

    Ma validation :

    public Planning validplanning(HttpServletRequest request) {
    	
    		Planning planning = new Planning();
    		
    		boolean huit = ValeurHeures(request, true);
    		boolean neuf = ValeurNeuf(request, true);
    		
    		try { 
    			traiterHeure(huit, planning);
    			traiterNeuf(neuf, planning);
    			
    			
    			planningdao.insert(planning);
    			
    			
    		}catch(Exception e) {
    			
    			e.printStackTrace();
    		}
    		
    		System.out.println("planningform" + planning.isHuit());
    		return planning;
    	
    	}
    
    	private void traiterHeure(boolean huit, Planning planning) {
        	
    		huit = false;
        	if(huit) {
        		planning.setHuit(false);
        	}else {
        		planning.setHuit(true);
        }
        	
        }
    	
    	private void traiterNeuf(boolean neuf, Planning planning) {
    		neuf = false;
        	if(neuf) {
        		planning.setNeuf(false);
        	}else {
        		planning.setNeuf(true);
        }
    	}
    	 
    	
    	private static boolean ValeurHeures(HttpServletRequest request, boolean result) {
    		
    	
    		if(request.getParameter("huit")!= null && request.getParameter("lundi8h") != null) {
    			
    	    	  result=true;
    		}else {
    			result =  false;
    	      
    	      }
    	      
    	      return result;
    	}
    	
    	private static boolean ValeurNeuf(HttpServletRequest request, boolean result) {
    		
    		if(request.getParameter("neuf")!= null && request.getParameter("mardi8h") != null ) {
    			
    	    	  result=true;
    		}else {
    			result =  false;
    	      
    	      }
    	      
    	      return result;
    	}
    	
    		
    	}
    	

    J'espere que vous pourrez m'éclairer car faire ceci pour beaucoup de cellule devient vite très lourd ! 





    -
    Edité par jprtt89 24 mai 2019 à 18:31:21

    • Partager sur Facebook
    • Partager sur Twitter
      24 mai 2019 à 22:20:04

      Salut regarde les commentaires
      public Planning validplanning(HttpServletRequest request) {
           
              Planning planning = new Planning();
              // ici tu veux donner true ou false avec le retour de t'es methodes 
              // mais regarde dans t'es deux methodes traiterHeure et traiterNeuf 
              
              boolean huit = ValeurHeures(request, true);
              boolean neuf = ValeurNeuf(request, true);
               
              try {
                  traiterHeure(huit, planning);
                  traiterNeuf(neuf, planning);
                   
                   
                  planningdao.insert(planning);
                   
                   
              }catch(Exception e) {
                   
                  e.printStackTrace();
              }
               
              System.out.println("planningform" + planning.isHuit());
              return planning;
           
          }
       
          private void traiterHeure(boolean huit, Planning planning) {
              // le problème viens de la ligne de dessous  
              huit = false;
              if(huit) {
                  planning.setHuit(false);
              }else {
                  planning.setHuit(true);
          }
               
          }
           
          private void traiterNeuf(boolean neuf, Planning planning) {
              
      
              //ici aussi
      
              neuf = false;
              if(neuf) {
                  planning.setNeuf(false);
              }else {
                  planning.setNeuf(true);
          }
          }
            
           
          private static boolean ValeurHeures(HttpServletRequest request, boolean result) {
               
           
              if(request.getParameter("huit")!= null && request.getParameter("lundi8h") != null) {
                   
                    result=true;
              }else {
                  result =  false;
                 
                }
                 
                return result;
          }
           
          private static boolean ValeurNeuf(HttpServletRequest request, boolean result) {
               
              if(request.getParameter("neuf")!= null && request.getParameter("mardi8h") != null ) {
                   
                    result=true;
              }else {
                  result =  false;
                 
                }
                 
                return result;
          }
           
               
          }
          

      -
      Edité par Zakion 24 mai 2019 à 22:21:50

      • Partager sur Facebook
      • Partager sur Twitter
        25 mai 2019 à 11:06:05

        Oui j'ai modifiée mais le problème est que Java ne reconnait pas le clic de la cellule jsp je suis à false a chaque clic. 

        	public Planning validplanning(HttpServletRequest request) {
        	
        		Planning planning = new Planning();
        		
        		try { 
        		 traiterHeure(request, planning);
        		traiterNeuf(request, planning);
        		
        			
        		
        			planningdao.insert(planning);
        			
        			
        		}catch(Exception e) {
        			
        			e.printStackTrace();
        		}
        		
        		return planning;
        	
        	}
        
        	private boolean traiterHeure(HttpServletRequest request, Planning planning) {
            	
        		if(request.getParameter("huit")!= null && request.getParameter("lundi8h") != null) {
        			
        	    	  planning.setHuit(true);
        		}else {
        			planning.setHuit( false);
        	      
        	      }
        		return planning.isHuit();
        	      
            }
        	
        	private boolean traiterNeuf(HttpServletRequest request, Planning planning) {
        		if(request.getParameter("neuf")!= null && request.getParameter("mardi8h") != null ) {
        			
        	    	  planning.setNeuf(true);
        		}else {
        			planning.setNeuf(false);
        	      
        	      }
        		return planning.isNeuf();
        	}
        	}



        • Partager sur Facebook
        • Partager sur Twitter
          26 mai 2019 à 12:58:39

          Ou peut etre devrais-je passer par ajax ? J'ai essayée mais j'ai du mal a comprendre le fonctionnement
          • Partager sur Facebook
          • Partager sur Twitter

          Tableau de booleen

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown