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 :

[Débutant] Affichage ou non de parties d'une page selon élément d'un select


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut [Débutant] Affichage ou non de parties d'une page selon élément d'un select
    Bonjour à tous,
    N'étant pas du tout expert en javascript, je cherche le moyen de changer mon affichage selon l'élément que je sélectionne dans un select.

    J'ai essayé en faisant quelque chose comme ça :

    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
    <select onchange="
    	if(this.options[this.selectedIndex].text == 'zone de texte' || this.options[this.selectedIndex].text == 'champs de texte')
    	{
    		document.getElementById('reponses').style.display = 'none';
    		document.getElementById('question_suivante').style.display = 'block';
    	}
    	else
    	{
    		if(this.options[this.selectedIndex].text == 'cases &agrave; cocher')
    		{
    			document.getElementById('rep_question_suivante').style.display = 'none');
    			document.getElementById('question_suivante').style.display = 'block';
    		}
    		else
    		{
    			document.getElementById('rep_question_suivante').style.display = 'block');
    			document.getElementById('question_suivante').style.display = 'none';
    		}
    		document.getElementById('reponses').style.display = 'block';
    	}
    ">
    	<option value="boutons radio">boutons radio</option>
    	<option value="cases &agrave; cocher">cases &agrave; cocher</option>
    	<option value="zone de texte">zone de texte</option>
    	<option value="champs de texte">champs de texte</option>
    	<option value="liste d&eacute;roulante">liste d&eacute;roulante</option>
    </select>
     
     
    <div id="question_suivante">
    ...
    </div>
     
    <div id="reponses">
    	<div id="rep_question_suivante">
    	...
    	</div>
    </div>
    Le soucis c'est que si j'ai un if-else simple, ça fonctionne. Mais dès que je concatène une autre condition à l'intérieur, ça ne réagit plus.
    J'ai également tenté en bricolant avec un switch, mais pareil, ça ne fait rien.

    J'imagine que ce n'est pas grand chose. Donc, si quelqu'un a une idée... Merci à celui qui aura le courage de la taper ici.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    heu déja commence par externaliser la fonction dasn le head de la page et appelle la dans le onchange
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    heu déja commence par externaliser la fonction dasn le head de la page et appelle la dans le onchange
    Dans ce cas,

    L'entête :
    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
    <script type="text/javascript">
    	<!--
    	function SelectQuest(textSelected)
    	{
    		if(textSelected == 'zone de texte' || textSelected == 'champs de texte')
    		{
    			document.getElementById('reponses').style.display = 'none';
    			document.getElementById('question_suivante').style.display = 'block';
    		}
    		else
    		{
    			if(textSelected == 'cases &agrave; cocher')
    			{
    				document.getElementById('rep_question_suivante').style.display = 'none');
    				document.getElementById('question_suivante').style.display = 'block';
    			}
    			else
    			{
    				document.getElementById('rep_question_suivante').style.display = 'block');
    				document.getElementById('question_suivante').style.display = 'none';
    			}
    			document.getElementById('reponses').style.display = 'block';
    		}
    	}
    	//-->
    </script>
    Le corps :
    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
    // Liste déroulante
    <select onchange="SelectQuest(this.options[this.selectedIndex].text);">
    	<option value="boutons radio">boutons radio</option>
    	<option value="cases &agrave; cocher">cases &agrave; cocher</option>
    	<option value="zone de texte">zone de texte</option>
    	<option value="champs de texte">champs de texte</option>
    	<option value="liste d&eacute;roulante">liste d&eacute;roulante</option>
    </select>
     
    // Eléments à afficher ou pas
    <div id="question_suivante">
    ...
    </div>
     
    <div id="reponses">
    	<div id="rep_question_suivante">
    	...
    	</div>
    </div>

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Ha be voilà qui est déja beaucoup plus clair ...

    text n'est pas crossbrowser ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SelectQuest(this.options[this.selectedIndex].innerHTML)
    sinon pourquoi pas le value ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 36
    Par défaut
    Merci pour le innerHTML.

    Reste que ça n'a pas changé.

    Sinon, le value... ben oui, pourquoi pas.

    Ca donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="SelectQuest(this.options[this.selectedIndex].value);
    ?

    Pour tester de votre côté, une version simplifiée de mon code :
    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
    <html>
    <head>
    <script type="text/javascript">
    	<!--
    	function SelectQuest(textSelected)
    	{
    		if(textSelected == 'zone de texte' || textSelected == 'champs de texte')
    		{
    			document.getElementById('reponses').style.display = 'none';
    			document.getElementById('question_suivante').style.display = 'block';
    		}
    		else
    		{
    			if(textSelected == 'cases &agrave; cocher')
    			{
    				document.getElementById('rep_question_suivante').style.display = 'none');
    				document.getElementById('question_suivante').style.display = 'block';
    			}
    			else
    			{
    				document.getElementById('rep_question_suivante').style.display = 'block');
    				document.getElementById('question_suivante').style.display = 'none';
    			}
    			document.getElementById('reponses').style.display = 'block';
    		}
    	}
    	//-->
    </script>
    </head>
    <body>
     
    <select onchange="SelectQuest(this.options[this.selectedIndex].value);">
    	<option value="boutons radio">boutons radio</option>
    	<option value="cases &agrave; cocher">cases &agrave; cocher</option>
    	<option value="zone de texte">zone de texte</option>
    	<option value="champs de texte">champs de texte</option>
    	<option value="liste d&eacute;roulante">liste d&eacute;roulante</option>
    </select>
     
    <div id="question_suivante">
    Contenu à afficher si 'cases &agrave; cocher' ou 'zone de texte' ou 'champs de texte' est sélectionné
    </div>
     
    <div id="reponses">
    	Contenu à afficher si 'boutons radio' ou 'liste déroulante' ou 'cases &agrave; cocher' est sélectionné
    	<div id="rep_question_suivante">
    	Contenu à n'afficher que si 'boutons radio' ou 'liste déroulante' est sélectionné
    	</div>
    </div>
    </body>
    </html>

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    le style display n'est pas initialisé dasn le div
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 29/04/2008, 10h55
  2. Affichage d'un tableau perl dans une page HTML
    Par Jim_Nastiq dans le forum Web
    Réponses: 7
    Dernier message: 13/04/2006, 11h27
  3. [MySQL] Actualiser une partie d'une page
    Par zoom61 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/03/2006, 12h18
  4. Récupérer une partie d'une page php d'un autre site
    Par 73qro dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/03/2006, 17h22
  5. Afficher/Cacher une partie d'une page
    Par frechy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/01/2006, 14h18

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