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 :

[js et php] réaffichage d'une liste déroulante


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut [js et php] réaffichage d'une liste déroulante
    J'ai 2 listes déroulantes. La deuxieme change en fonction de ce qu'on a selectionné dans la premiere. Jusque là tout va bien.
    Puis je vais sur une autre page en gardant dans session les variables selectionnées dans les deux listes déroulante.
    L'utilisateur peut revenir sur la page des 2 listes pour verifier et corriger les selections. Je réaffiche alors ce qui ont été selectionnées.

    Mon problèmes est que je n'ai plus que la la variable selectionnée dans la deuxieme liste deroulante, et non toute la liste. Ce qui est normale parce qu'elle ne s'affiche qu'à l'évenement onChange sur la premiere liste déroulante.
    Comment pourrais-je faire pour garder cette 2eme liste deroulante quand je revient sur cette 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
    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
     
     
    <head><!--ent-tête de la page html-->
    		<title>PROLOG</title>
    		<SCRIPT language=JavaScript><!--
     
    		listeHistologie = new Array();
    		listeHistologie[0] = new Array("X");
    		listeHistologie[1] = new Array("ne sait pas","carcinome épidermoïde ou malpighien");
    		listeHistologie[2] = new Array("ne sait pas","Adénocarcinome lieberkuhnien","Tumeur villeuse");
    		listeHistologie[3] = new Array("ne sait pas","Adénocarcinome lieberkuhnien","Tumeur villeuse");
     
    (...............)
     
    //fonction qui change la liste déroulante listeB(histologie)  en fonction de la selection dans la liste déroulante listeA(localisation primitive)
    		function changeliste()
    		{
    			choix=document.getElementById("listeA").value; //la value de la localisation primitive choisie (clef de listeCancer)	
    			t='<select name="listeB" id="listeB">'; //ouverture de la balise <select> avec ses attributs 
    			for(i=0;i<listeHistologie[choix].length;i++) //pour (i= 0; i<longueur du tableu listeHistologie[value du Cancer choisie]; i++)
    			{
    				//rajout après <select> des options avec la valeur i du tableau listeHistologie[choix] 
    				///////ATTENTION : la séléction n'est pas réaffiché quand on revient dans cette page.////////////////////
    				t+="<option value='"+listeHistologie[choix][i]+"'>"+listeHistologie[choix][i]+"</option>";				
    			}
    			//change le contenu de la balise <A> de id=listeB_div en t et fermeture de la balise <select>	
    			document.getElementById("listeB_div").innerHTML=t+'</select>';
    		}	
     
    --></SCRIPT>		
     
    	</head>
     
    <body><!--corps de la page html-->
     
    <b>Localisation primitive :</b>&nbsp <A id=listeA_div>
    				<SELECT id=listeA onchange=changeliste() onClick=acceschamp() name=listeA>
    				<option value=0 <? if ($_SESSION['loca']=='0') {print "selected";}?> selected>autres</option>
    				<option value=1 <? if ($_SESSION['loca']=='1') {print "selected";}?>>cavité buccale/lèvres</option>
    				<option value=2 <? if ($_SESSION['loca']=='2') {print "selected";}?>>colon bilatéral</option>
    				<option value=3 <? if ($_SESSION['loca']=='3') {print "selected";}?>>colon droit</option>
    				<option value=4 <? if ($_SESSION['loca']=='4') {print "selected";}?>>colon gauche</option>
     
    (.....)
    </SELECT><A>
     
    <b>Histologie : </b><A id=listeB_div>
    					<SELECT id=listeB name=listeB>
    						<option><? if ($rappel!='X') print($rappel);?></option>
    						<OPTION value=X >Histologie</OPTION>
    					</SELECT></A></center>

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par maraly Voir le message
    Comment pourrais-je faire pour garder cette 2eme liste deroulante quand je revient sur cette page?
    Sur le onload de ta page, il faudrait relancer le script que tu as lancé la 1° fois sur le onchange de la 1° liste (en fonction du contenu de ta variable session, cette fois).

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Points : 65
    Points
    65
    Par défaut
    Merci de ta réponse,

    Je vois ce que tu veux dire.

    J'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <body onLoad="javascript:changeliste()">
    et j'ai effectivement tous les élements de la liste déroulante2 correspondant à la selection dans la liste1 réaffichés.

    Mais ce que j'ai déjà selectionné dans la liste2 ne se réaffiche pas directement comme selectionné. J'ai verifié, il est bien gardé en session.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par maraly Voir le message
    Mais ce que j'ai déjà selectionné dans la liste2 ne se réaffiche pas directement comme selectionné. J'ai verifié, il est bien gardé en session.
    Il faut que tu ajoutes une fonction qui resélectionne la bonne ligne (en fonction de ta valeur conservée en variable session) ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2007, 16h38
  2. Réponses: 4
    Dernier message: 15/12/2006, 21h43
  3. [MySQL] PHP afficher a partir d'une liste déroulante
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/11/2006, 09h00
  4. [PHP-JS] changement d'une liste déroulante
    Par maraly dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2006, 14h53
  5. Réponses: 12
    Dernier message: 02/05/2006, 19h37

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