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 :

Faire disparaitre une option d'un select


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut Faire disparaitre une option d'un select
    Bonjour,

    voila dans mon formulaire, lorsque je clic sur un bouton radio, je voudrai faire disparaitre une option d'un select. J'arrive a faire disparaitre mon select en entier grace a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function LockUnlockElements() {
    	if (document.getElementById("CCL").checked) {
    	document.getElementById("typepersonnel").style.display="";
    	document.getElementById("typepersonnelnonsala").style.display="none";
    	}
    	else {
    	document.getElementById("typepersonnel").style.display="none";
    	document.getElementById("typepersonnelnonsala").style.display="";
    	}
    	}
    mais du coup j'ai fait 2 select dont l'un ne possede pas l'option que je veut enlever.
    Mais vu que je récupère les valeur du sélect dans ma base de donnée grace à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Type<br><dd>personnel :<SELECT NAME="typepersonnel" id="typepersonnel" onchange="afficherService()">
    	<option value ="">-</option>
     
    	<?php
    $sql = "SELECT  typepersonnel FROM ref_typepersonnel order by typepersonnel" ;
    $res = mysql_query( $sql ) or die( $sql.":".mysql_error()) ;
    while ( $r = mysql_fetch_array( $res, MYSQL_NUM ) )
        {
            $typepersonnel = $r[0];
        echo "<option value=\"$typepersonnel\">$typepersonnel</option>\n" ;
        }
    ?>
    </SELECT>
    je suis obliger de refaire l'autre select en "dur" ... mais ça ne fonctionne pas


    Donc je voudrai savoir si dans ma fonction javascript je pouvais récupéré la valeur de l'option plutot que l'id du select...pour ensuite faire disparaitre/caché cette option ou la mettre disabled.

    J'ai essayer toute la journée mais en vain, j'ai besoin de vous help ^^

  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
    l'option n'accepte pas le style display

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <select onchange="this.removeChild(this.options[this.selectedIndex])">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    </select>
    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
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    l'option n'accepte pas le style display

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <select onchange="this.removeChild(this.options[this.selectedIndex])">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    </select>
    le problème de ton exemple, c'est que l'option se supprime lorsqu'on change de sélect si j'ai bien compris...enfin je crois

    Moi je voudrai que l'option s'enlève lorsque que je click sur un bouton radio

    Donc j'ai fait ma fonction comme ceci (et je l'appel sur un onclick dans l'input radio) :

    function LockUnlockElements() {

    if (document.getElementById("CCL").checked) {


    typepersonnel.removeChild(typepersonnel.options[typepersonnel.selectedIndex.length3]);
    }
    }
    donc évidemment ça ne marche pas, la syntaxe ne doit pas etre bonne...
    j'ai mis "length3" à la fin car l'élément de la liste que je veux enlever ce trouve en 4è position mais je ne suis pas sur que c'est comme cela que l'on fait, ou alors sinon je met sa value mais où?

  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
    length3 ? c'est nouveau? un form en 3D ?
    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
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    length3 ? c'est nouveau? un form en 3D ?
    non non j'avais trouver quelque chose similaire pour récupéré une option...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    personne n'aurait de réponse alors ou alors je pensait mettre l'option en question en disabled, j'ai essayer sur une option directement et cela marche, mais mon problème est toujours de savoir comment appeler cette option dans ma fonction javascript en fonction d'u click sur un bouton radio

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var listes = document.getElementById("typepersonnel").removeChilde;
    listes.removeChild(listes.options[listes.selectedIndex]);
    A+.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var listes = document.getElementById("typepersonnel").removeChilde;
    listes.removeChild(listes.options[listes.selectedIndex]);
    A+.
    merci bien... par contre c'est au niveau de selected index que je choisi l'option? dois-je mettre sa value ou un numéro correspondant à sa place dans le sélect?

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    C'est l'option sélectionnée sur le select qui est ciblé par selectedIndex.

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    je dois avoir un problème je suis désolé je suis un peu perdu je ne peut pas spécifié la valeur de l'option que je veut enlever?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function LockUnlockElements() {
    	var listes = document.getElementById("typepersonnel").removeChilde;
    	if (document.getElementById("CCL").checked) {
     
     
    		listes.removeChild(listes.options[listes.selectedIndex]);	
    	}
    	}
    en gros dans ma fonction je ne précise jamais quelle option j'enleve, c'est cela qui me parait bizarre

  11. #11
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Ca, c'est l'indice de l'élément sélectionné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listes.removeChild(listes.options[listes.selectedIndex]);
    Donc vous pouvez le remplacer par l'indice que vous voulez réellement supprimer, par exemple le 4ème (je pense que ça commence à zéro):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listes.removeChild(listes.options[3]);

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Avec ce code, tu supprimeras l'option qui est sélectionnée(avec sa valeur).
    J'ai fait un mauvais copier/coller
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var listes = document.getElementById("typepersonnel");
    Mais si tu veux passer en paramètre la valeur de l'option à supprimer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function LockUnlockElements(valeur) {
    	var listes = document.getElementById("typepersonnel");
    	if (document.getElementById("CCL").checked) {
    		for(var i=0; i<listes.length; i++)
    		{
    			if(listes.options[i].value==valeur)
    			{
    				listes.removeChild(listes.options[i]);
    				return ;
    			}
    		}
    	}
    }
    A+.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Mais si tu veux passer en paramètre la valeur de l'option à supprimer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function LockUnlockElements(valeur) {
    	var listes = document.getElementById("typepersonnel");
    	if (document.getElementById("CCL").checked) {
    		for(var i=0; i<listes.length; i++)
    		{
    			if(listes.options[i].value==valeur)
    			{
    				listes.removeChild(listes.options[i]);
    				return ;
    			}
    		}
    	}
    }
    A+.
    YEEEES !!! c'est ce que je voulais merci beaucoup.... Mais ^^ petite question, le problème c'est que lorsque je clique sur les autres buton radio il faudrait que l'option revienne je suis chiant je sais

  14. #14
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Dans ce cas tu dois stocker les options quelque part (dans un cookie ou variable globale) et tu le rajoutes au moment voulu.

    A+.

Discussions similaires

  1. activer un input lorsque l'on choisi une option ds un select
    Par netwebzone dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/04/2007, 23h12
  2. Réponses: 4
    Dernier message: 11/07/2006, 10h41
  3. [XSLT] sélectionner une option d'un select
    Par gojira dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/06/2006, 15h45
  4. Selectionner une option dans un select
    Par _beber85 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/04/2006, 16h48
  5. Supprimer une option d'un select à choix multiple
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/02/2005, 14h16

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