Partage
  • Partager sur Facebook
  • Partager sur Twitter

lié listé déroulant avec un champ text

    8 juillet 2010 à 11:53:33

    Bonjour,

    Je travail avec le langage JSP et base de donnée Oracle
    Je voudrai que lorsque la personne choisi un "nom_prenom_res" dans la liste déroulante que le numéro de tel soit automatiquement agrémenté dans un champs text.J'essaye de trouver du code en javascript que effectue cela.
    Pour compléter ma liste déroulant, ceci se fait par requète SQL ou chaque nom_prenom_res et associé un tel.

    voici mon code pour être plus clair
    <td><select name = "nomRep" id ="nomRep"style="width : 150px">
    	DBConnexion dbc_resp = new DBConnexion();
    	String sql_nomResp = "SELECT nom_prenom_res FROM resp_chantier";
    	ResultSet resultat_nomResp = dbc_resp.recupereRequete(sql_nomResp);
    	while(resultat_nomResp.next())
    	{
    		out.print("<option>"+resultat_nomResp.getString("nom_prenom_res")+"</option>");
    	}
    						
    	out.print("</select></td>");
    	out.print("<td>");
            if(String chp = request.getParameter("nomRep")!= null)
    	{
    		DBConnexion dbc_telResp = new DBConnexion();
    		String sql_telResp = "SELECT tel_res FROM resp_chantier";
    		sql_telResp = sql_telResp.concat("WHERE nom_prenom_res = "+resultat_nomResp.getString("nom_prenom_res"));
    		ResultSet resultat_telResp = dbc_telResp.recupereRequete(sql_telResp);
    					
    		out.print("<input type=\"text\" name=\"telResp\" size=\"8\" maxlength=\"10\" value ="+resultat_telResp.getString("tel_res")+"/>");
    		dbc_telResp.closeConnexion();
    		dbc_resp.closeConnexion();
    	}
    	dbc_telResp.closeConnexion();
    	dbc_resp.closeConnexion();
    


    j'ai déjà réflechi j'ai pensé à ce code mais il ne marche pas
    voici le code si jamais sa peut vous mettre sur un piste

    <td><select name = "nomRep" id ="nomRep"style="width : 150px" onchange="remplitTel(this)"> 
    <%
    	DBConnexion dbc_resp = new DBConnexion();
    	String sql_nomResp = "SELECT nom_prenom_res,tel_res FROM resp_chantier";
    	ResultSet resultat_nomResp = dbc_resp.recupereRequete(sql_nomResp);
    	String aJs="var tabTelephone=new Array();";
    	while(resultat_nomResp.next())
    	{
    		out.print("<option>"+resultat_nomResp.getString("nom_prenom_res")+"</option>");
    		aJs+="tabTelephone['"+resultat_nomResp.getString("nom_prenom_res")+"']='"+resultat_nomResp.getString("tel_res")+"';";
    	}
    %>
    </select></td>
    <td><input type="text" name="telResp" disabled size="8" maxlength="10" value ="" /></td>
    <script language="javascript">
    <%=aJs%>
    function remplitTel(selNomRep){
    	var nomResp=selNomRep.value;
    	var telResp=tabTelephone[nomResp];
    	document.getElementById('telResp').value=telResp;
    }
    </script>
    


    J'espere que j'ai été clair.
    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      8 juillet 2010 à 12:12:08

      ça me parait pas mal ton deuxième code, qu'est-ce qui ne marhce pas?
      Pour être sûr, montre nous le code généré...
      • Partager sur Facebook
      • Partager sur Twitter
        8 juillet 2010 à 12:21:04

        Lorsque je choisi un nom d'un responsable, le champs ou doit contenir le numéro de tel afficher toujours undefined.
        • Partager sur Facebook
        • Partager sur Twitter
          8 juillet 2010 à 13:01:58

          Le code source généré...? :-°
          • Partager sur Facebook
          • Partager sur Twitter
            8 juillet 2010 à 13:34:20

            qu'est ce que vous appellez le code générer?
            • Partager sur Facebook
            • Partager sur Twitter
              8 juillet 2010 à 14:01:42

              Sur la page où il y a ton select, tu faits ctrl+u sous firefox par exemple, et tu selectionne la partie qui nous interesse...
              En gros ça devrait donner quelque chose d'approchant à:
              <td><select name = "nomRep" id ="nomRep"style="width : 150px" onchange="remplitTel(this)"> 
              <option>...</option>
              <option>...</option>
              <option>...</option>
              </select></td>
              <td><input type="text" name="telResp" disabled size="8" maxlength="10" value ="" /></td>
              <script language="javascript">
              tabTelephone['key']='value';tabTelephone['key']='value';tabTelephone['key']='value';...
              function remplitTel(selNomRep){
              	var nomResp=selNomRep.value;
              	var telResp=tabTelephone[nomResp];
              	document.getElementById('telResp').value=telResp;
              }
              </script>
              
              • Partager sur Facebook
              • Partager sur Twitter
                8 juillet 2010 à 14:09:37

                <td><select name = "nomRep" id ="nomRep"style="width : 150px" onchange="remplitTel(this)"> 
                	<option>COMBES Laurent</option>
                	<td><input type="text" name="telResp" disabled size="8" maxlength="10" value ="" /></td>
                	<script language="javascript">
                	var tabTelephone=new Array();tabTelephone['COMBES Laurent']='0144708650';				 
                	function remplitTel(selNomRep){
                	var nomResp=selNomRep.value;
                	var telResp=tabTelephone[nomResp];
                	document.getElementById('telResp').value=telResp;
                	}
                	</script>
                


                Je vous ai simplifié vu que j'ai plus de 400 nom
                • Partager sur Facebook
                • Partager sur Twitter
                  8 juillet 2010 à 14:22:03

                  A mon avis le problème vient du fait que tu ne donnes pas de "value" à tes options...
                  exemple:
                  <option value="1">Dupont</option>
                  

                  Je pense que si tu faits un
                  alert(selNomRep.value)
                  
                  dans ta fonction js, je pense que tu verras l'erreur!
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 juillet 2010 à 14:30:07

                    Je viens de rajouter les values mais sa donne toujours rien.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 juillet 2010 à 15:08:56

                      Bon et si tu y mettais un peu du tiens ;)
                      que donne ceci:
                      function remplitTel(selNomRep){
                      
                      	var nomResp=selNomRep.value;
                      alert(typeof selNomRep.value);
                      alert(nomResp);
                      	var telResp=tabTelephone[nomResp];
                      alert(typeof tabTelephone[nomResp]);
                      alert(telResp);
                      	document.getElementById('telResp').value=telResp;
                      	}
                      
                      (tout en gardant les value dans tes <option>
                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 juillet 2010 à 15:18:12

                        par exemple sur la personne avec le code générer que je vous ai montrer

                        sa m'affiche:

                        string
                        1
                        undefined
                        undefined

                        je viens de pensé a une chose
                        sa sera pas mieux de mettre le tel en value? vu qu'il s'affiche?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          8 juillet 2010 à 15:24:05

                          ah ben voui effectivement si tu faits du copier/collé bête et méchant :/
                          As-tu à ton avis une entrée avec la clé "1" dans ton tableau javascript tabTelephone ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            8 juillet 2010 à 15:30:30

                            j'en ai aucune idée
                            En meme temp je debute dans le javascript celui que j'ai fais été le premier
                            • Partager sur Facebook
                            • Partager sur Twitter
                              8 juillet 2010 à 15:43:25

                              Bon on reprend, d'un côté, tu as un tableau de cette forme:
                              var tabTelephone=new Array();
                              tabTelephone['COMBES Laurent']='0144708650';
                              tabTelephone['Dupond Daniel']='0123456789';
                              

                              et de l'autre, tu cherches à l'atteindre via
                              tabTelephone[1];
                              

                              Crois-tu que ça puisse marcher? il faut faire correspondre les deux choses...
                              donc soit tu changes tes <option> afin d'avoir:
                              <option value="COMBES Laurent">COMBES Laurent</option>
                              

                              et ça foncitonnera surement, mais je le déconseille, parceque des caractères spéciaux peuvent fausser le script...
                              Tu peux donc changer ton tableau javascript généré comme ceci:
                              var tabTelephone=new Array();
                              tabTelephone[0]='0144708650';
                              tabTelephone[1]='0123456789';
                              

                              et ton html comme ceci:
                              <option value="0">COMBES Laurent</option>
                              <option value="1">Dupond Daniel</option>
                              


                              Tu saisis?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                8 juillet 2010 à 15:52:50

                                si j'ai bien saisi il faut que je modifié mon tableau dans le code en jsp?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  8 juillet 2010 à 15:54:32

                                  je t'ai proposé différents choix, à toi de voir et surtout de tester!
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    8 juillet 2010 à 16:00:43

                                    Merci pour ton aide et ta patience
                                    sa marche tres bien
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      8 juillet 2010 à 16:53:23

                                      Le probleme avec la fontion getElementById() c'est qu'elle ne gère pas les caractère spéciaux genre virgurle , espace...
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      lié listé déroulant avec un champ text

                                      × 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