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 :

Griser ou masquer une liste déroulante


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut Griser ou masquer une liste déroulante
    Bonjour, bonsoir à toute.



    J'ai une page HTML PHP nommée choix.php :
    Code php : 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
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Choix du type d'ordinateur</title>
        </head>
        </head>
        <body>
     
    	<h3 id="ordinateurs">Choisir l'ordinateur à affecter :</h3>
     
    	<form id="frmOrdi" name="frmOrdi" action="?page=lieu" method="post">
     
    	<INPUT type= "radio" name="choix" value="utilisateur" onclick="verifListe()"/><label>Affecter selon l'utilisateur</label><br/>
        <INPUT type= "radio" name="choix" value="ordinateur" onclick="verifListe()"/><label>Affecter selon l'ordinateur</label><br/>
     
    	<a>Choisir l'ordinateur à affecter :</a>
    	<SELECT name="listeOrdi">
    	<?php
    	for($i = 0; $i < count($ordinateurs); $i++)
    	{
    		echo "<option>".$ordinateurs[$i]."</option>";
    	}
    	?>
    	</select>
    	<a>Ou alors, choisir l'utilisateur à affecter :</a>
    	<SELECT name="listeUtilisateurs">
    	<?php
    	for($i = 0; $i < count($users); $i++)
    	{
    		echo "<option>".utf8_encode($users[$i])."</option>";
    	}
    	?>
    	</select>
    	<br/>
    	<input type="submit" value="Valider" onclick="self.location.href='?page=lieu'")>
    	<input type="button" value="Retour" onclick="self.location.href='?page=home'")>	
    	</form>
     
    	<script type="text/javascript" src="../include/script.js"></script>
        </body>
    </html>

    Et j'ai un script JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function verifListe()
    {
        if(document.forms["frmTypePC"]["choix"].value == "utilisateur")
        {
    		window.document.getElementById['listeUtilisateurs'].disabled=true;
    	}
    	else
    	{
    		window.document.getElementById['listeOrdi'].disabled=true;
    	}
    }
    J'aimerai qu'en fonction de mon choix de la checkbox soit Utilisateur, soit Ordinateur, la liste correspondante soit accessible et l'autre soit griser. Le problème ? Après maintes et maintes tentatives, je n'y arrive toujours pas...

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Plusieurs choses :

    Ton formulaire ne s'appelle pas "frmTypePC" mais "frmOrdi"
    Tu fais une recherche de tes select par getElementById alors qu'ils n'ont pas d'id mais un name : attribue des ids à tes contrôles select

    Tu implémentes mal getElementById :
    D'abord c'est une méthode, pas un tableau : il faut utiliser des parenthèses à la place des crochets
    Ensuite pour modifier une valeur d'attribut comme disabled, il faut utilise la méthode setAttribute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('listeUtilisateurs').setAttribute('disabled', 'disabled');
    Quand tu désactive un contrôle select il faut réactiver l'autre pour ça il faut utiliser removeAttribute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('listeOrdi').removeAttribute('disabled');
    Si je résume :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        if(document.forms["frmTypePC"]["choix"].value == "utilisateur")
        {
    		document.getElementById('listeUtilisateurs').setAttribute('disabled', 'disabled');
    		document.getElementById('listeOrdi').removeAttribute('disabled');
    	}
    	else
    	{
    		document.getElementById('listeOrdi').setAttribute('disabled', 'disabled');
    		document.getElementById('listeUtilisateurs').removeAttribute('disabled');
    	}
    Ca devrait aller mieux

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function verifListe()
    {
        if(document.forms["frmTypePC"]["choix"].value == "utilisateur")
        {
    		document.getElementById('listeUtilisateurs').setAttribute('disabled', 'disabled');
    		document.getElementById('listeOrdi').removeAttribute('disabled');
    	}
    	else
    	{
    		document.getElementById('listeOrdi').setAttribute('disabled', 'disabled');
    		document.getElementById('listeUtilisateurs').removeAttribute('disabled');
    	}
    }


    MA PAGE :
    Code php : 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
    	<form id="frmOrdi" name="frmOrdi" action="?page=lieu" method="post">
     
    	<INPUT type= "radio" name="choix" value="utilisateur" onclick="verifListe()"/><label>Affecter selon l'utilisateur</label><br/>
        <INPUT type= "radio" name="choix" value="ordinateur" onclick="verifListe()"/><label>Affecter selon l'ordinateur</label><br/>
     
    	<a>Choisir l'ordinateur à affecter :</a>
    	<SELECT id="listeOrdi" name="listeOrdi">
    	<?php
    	for($i = 0; $i < count($ordinateurs); $i++)
    	{
    		echo "<option>".$ordinateurs[$i]."</option>";
    	}
    	?>
    	</select>
    	<a>Ou alors, choisir l'utilisateur à affecter :</a>
    	<SELECT id="listeUtilisateurs" name="listeUtilisateurs">
    	<?php
    	for($i = 0; $i < count($users); $i++)
    	{
    		echo "<option>".utf8_encode($users[$i])."</option>";
    	}
    	?>
    	</select>
    	<br/>
    	<input type="submit" value="Valider" onclick="self.location.href='?page=lieu'")>
    	<input type="button" value="Retour" onclick="self.location.href='?page=home'")>	
    	</form>

    Ca ne marche toujours pas. Je ne veux pas passer par un bouton. Le onclick marche dans le bouton ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Points : 300
    Points
    300
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form id="frmOrdi" name="frmOrdi" action="?page=lieu" method="post">
    ...
    if(document.forms["frmTypePC"]["choix"].value == "utilisateur")
    Ton formulaire n'a toujours pas le bon nom...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    Je me suis trompé de copié/coller sur le forum, j'ai bien modifié.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function verifListe()
    {
        if(document.forms["frmOrdi"]["choix"].value == "utilisateur")
        {
    		document.getElementById('listeUtilisateurs').setAttribute('disabled', 'disabled');
    		document.getElementById('listeOrdi').removeAttribute('disabled');
    	}
    	else
    	{
    		document.getElementById('listeOrdi').setAttribute('disabled', 'disabled');
    		document.getElementById('listeUtilisateurs').removeAttribute('disabled');
    	}
    }
    Et toujours pas efficace.

    Par contre, j'y suis passé avec du CSS et des DIV. Merci quand même !!

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

Discussions similaires

  1. Masquer une liste déroulante de façon permanente
    Par audrey1912 dans le forum ASP
    Réponses: 4
    Dernier message: 26/07/2011, 15h19
  2. Masquer colonne à partir d'une liste déroulante
    Par Edouard38 dans le forum Excel
    Réponses: 3
    Dernier message: 08/07/2009, 18h32
  3. masquer une liste déroulante sous Excel/VBA
    Par Krovax dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2008, 15h58
  4. Masquer une liste déroulante et une zone de texte
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/11/2007, 12h16
  5. Réponses: 17
    Dernier message: 23/05/2007, 14h57

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