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

JavaScript Discussion :

Retour de liste deroulante


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut Retour de liste deroulante
    Bonjour, j'ai une liste déroulante dans mon code HTML, seulement quoi que je choisisse, le retour correspond toujours au choix n°1...
    J'ai dû faire une erreur dans ma fonction Javascript mais je ne vois pas ou.

    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
    //**********************************Liste déroulante des formations*****************************************/
    		echo'
    			<select name = "formation" size = "1"   onClick="envoiRequete3('.$i.')">' ;  
    			foreach($bdd->afficherNomSFormationS() as $key=>$formation){
    				echo'<option id="ffformation.'$i.'" align="center">'.$formation.'</option>' ;
    				$i++ ;  
    				}
    			echo'
    			</select>
    		</form>' ;
    		/**********************************************************************************************************/
     
     
    function envoiRequete3(iLigne)
    {
       var ffformation = document.getElementById('ffformation'+iLigne).value;
     
        for (i=1 ; i<=200 ; i++)
            {
                if (document.getElementById('ffformation'+iLigne).selected)
                    {
                        requeteAjax.open("GET", "/groupoffice-com-3.5.7/modules/testmodule/classes/FormationStagiaire.php?ffformation="+ffformation, true) ;
     
                        requeteAjax.onreadystatechange = function()
    		    {
    			if (requeteAjax.readyState == 4)
    			{
    							                                                document.getElementById("reponseParcours").innerHTML =requeteAjax.responseText ;
    			}
    		     }
     
                        requeteAjax.send(null) ;
                    }
            }
    }

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Bonjour, pourrais tu poster le code généré

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    Le code source de la page vous voulez dire ?

    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
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<head>
    		<title>Menu</title>
    		<meta http-equiv="Content-Type" content="html/css; charset=UTF-8">
    		<link rel="stylesheet" media="screen" type="text/css" href="/groupoffice-com-3.5.7/modules/testmodule/classes/vues.css"/>
    	</head>
    	<body>
    	    <!--div id="cible" onClick="init()">aaa</div-->
     
     
    		<div id="menu" style="width:100%; height:25px; background-color:#1f76a3">
    			<ul>
    				<li id="inscription" onMouseOver="curseurInscription(1)" onClick = "InscriptionStagiaire()">Inscription</li>
    				<li id="stagiaire" onMouseOver="curseurStagiaire(1)" onClick = "ConnexionStagiaire()">Stagiaire</li>
    				<li id="formateur" onMouseOver="curseurFormateur(1)" onClick = "ConnexionFormateur()">Formateur</li>
    				<li id="deconnexion" onMouseOver="curseurDeconnexion(1)" onClick = "Deconnexion()">Deconnexion</li>
    			</ul>
     
    		</div> 
    		<div id="banniere">
    			<img src="/groupoffice-com-3.5.7/modules/testmodule/images/afpa.gif"  alt="Logo de l'AFPA">
    		</div>
     
    		<p id="titreStagiaire">Votre parcours</p><br><br>
    		<div>
    		<form name="formulaireFormation">
    		Quelle formation voulez-vous ?<br><br>
     
    			<select name = "formation" size = "1"  onClick="envoiRequete3(1)"><option id="ffformation1" align="center">Carreleur</option><option id="ffformation2" align="center">Soudeur a l arc electrode enrobee et tig</option><option id="ffformation3" align="center">Electromecanicien de maintenance industrielle</option><option id="ffformation4" align="center">Agent d entretien du batiment</option><option id="ffformation5" align="center">Electricien d equipement</option><option id="ffformation6" align="center">Mecanicien reparateur de cycles et motocycles</option><option id="ffformation7" align="center">Conseiller service client a distance</option><option id="ffformation8" align="center">Assistant de direction</option><option id="ffformation9" align="center">Metallier</option><option id="ffformation10" align="center">Assistant de vie aux familles</option><option id="ffformation11" align="center">Macon</option><option id="ffformation12" align="center">Agent de proprete et d hygiene</option><option id="ffformation13" align="center">Plaquiste</option><option id="ffformation14" align="center">Agent de restauration</option><option id="ffformation15" align="center">dd</option><option id="ffformation16" align="center">Developpeur Logiciel</option>
     
    			</select>
    		</form>
    			</div><br><br>
    		<div id="reponseParcours"></div>
    	</body>
    </html>

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    *Est-ce normal que les <option> n'ai pas de value ?

    *onclick sur un select ? onchange ne serai-il pas plus approprié ?

    *De plus dans ce onclick, on entre une valeur $i qui est modifiée dans la boucle plus bas et le onclick n'est pas dans cette boucle, du coup, le $i ne varie pas...
    Est-ce volontaire?

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    pour commencer tes options n'ont pas de value :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option id="ffformation1" align="center">Carreleur</option>
    ensuite tu envois toujours la 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onClick="envoiRequete3(1)"
    il te faut passer l'élément sélectionné ou son index ou sa valeur ...

    exemple avec son index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select onchange="alert(this.selectedIndex)">
    <option value="1">test</option>
    <option value="2">test</option>
    <option value="3">test</option>
    </select>
    et dernier point il faut utiliser on change sur un select et non un onclick

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    Merci de vos réponses.
    Les <option> ont des value, ffformation.$i, donc la 1ere s'appelle fformation1, la deuxième ffformation2 etc, c'est écrit(1) car quand j'ai pris le code source j'avais sélectionné la 1ere option.
    Quant au onChange, j'ai essayé ça donne exactement le même résultat que le onClick

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    En fait ça prend toujours 1 dans le code source mais je ne comprend pas pourquoi puisque je rajoute au nom de ffformation la valeur de i donc ils devraient tous être différents enfin en tout cas c'était l'idée

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($bdd->afficherNomSFormationS() as $key=>$formation){
    				echo'<option id="ffformation'.$i.'" align="center">'.$formation.'</option>' ;
    				$i++ ;  
    				}

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Et si tu sélectionne la seconde option, es-tu sur que c'est bien 2 qui apparait?
    A la vue de ton code, je n'en suis pas convaincu...

    Pour les value, nous ne les voyons pas, tes options ont bien un id mais pas de value...

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Citation Envoyé par samuel4256 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($bdd->afficherNomSFormationS() as $key=>$formation){
    				echo'<option id="ffformation'.$i.'" align="center">'.$formation.'</option>' ;
    				$i++ ;  
    				}
    Sauf que ton onclick, qui devrait être un onchange, n'est pas dans la boucle....

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    C'est cela vous avez raison onClick="envoiRequete3('.$i.') est avant la boucle donc la valeur de i à cet endroit est toujours 1.
    Comment assigner à ma fonction la "vraie" valeur de i sachant qu'elle se trouve en dehors de la boucle ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    tout est dans la réponse de le_chomeur ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    envoirequete3(this.selectedIndex)

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    ok merci mais sésolé j'ai une dernière question, je suis débutant et je ne connaissais pas this.selectedIndex...

    Que dois-je changer dans ma fonction Javascript ?
    Je met quoi à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ffformation = document.getElementById('ffformation'+iLigne).value;
    ?

    Merci de vos réponses et de votre patience.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Rien, il faut juste rajouter une value à tes <option> sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option id="ton_id" value="ta_value" align="center"> Texte</option>

  15. #15
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    J'ai encore du me tromper je récupère la valeur de i dans ma fonction javascript mais moi ce que je veux récupérer c'est le texte qui est après

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 95
    Points : 66
    Points
    66
    Par défaut
    C'est bon ça fonctionne merci à vous

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Ecris le même texte dans ton attribut value que entre tes balises <option>

    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option id="ton_id" value="TOTO" align="center"> TOTO</option>
    Puis dans ta fonction javascript, pour récupérer la valeur, tu gardes ton getElementById comme précédemment.

    Attention à ne pas avoir de caractères spéciaux dans ton texte. Ou alors il faudra utiliser une autre méthode...

    Bon courage

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

Discussions similaires

  1. [AJAX] actualisation liste deroulante si retour page précedente
    Par pascale86 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 01/02/2008, 09h49
  2. Supprimer le retour à la ligne après une liste deroulante
    Par kobe dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 30/08/2006, 13h34
  3. [JSP]Problème liste deroulante dynamique
    Par besco dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 09/09/2004, 17h58
  4. liste deroulante avec plusieurs champs
    Par JulienT dans le forum Struts 1
    Réponses: 4
    Dernier message: 20/04/2004, 17h17
  5. [langage] liste déroulante
    Par Jeh dans le forum Langage
    Réponses: 6
    Dernier message: 16/09/2003, 10h14

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