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 :

liste déroulante JS


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut liste déroulante JS
    Bonjour,

    Voila j'ai un formulaire tout simple que je voudrais compliqué un peu pour le bien de l'application

    Donc voici un champ de ce formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = "SELECT DESIGNATION FROM TYPE"; 
    $req = odbc_exec($conn,$sql) or die('Erreur SQL : <br />'.$sql); 
     
     
    echo "<select name= 'TYPE' >"; 
     
    while($data = odbc_fetch_array($req)) 
    { 
    echo "\n <option value=\"".$data["DESIGNATION"]."\" selected>".$data["DESIGNATION"]."</option>\n\n"; 
     
    } 
    echo "<option value='type' selected='selected'>Type</option>"; 
    echo '</select>';
    Donc il présente une liste déroulante qui affiche :

    Arrêt chaine
    Trou
    Autres
    Type (Par défaut)

    Déja dans un premier temps bien qu'il soit par défaut j'aimerais que le champ type ne soit pas clicquable alors je sais pas si c'est possible mais bon...

    Et deuxièmement j'aimerais que si l'utilisateur clic sur Trou cela grise une partie du formulaire qu'il n'aurait pas besoin de remplir voila

    Pouvez vous m'aider svp

    Merci d'avance

  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 , merci de poster le code HTML généré

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select name= 'TYPE' >
     <option value="Arrêt chaîne" selected>Arrêt chaîne</option>
     
     
     <option value="Trou" selected>Trou</option>
     
     
     <option value="Autre" selected>Autre</option>
     
    <option value='type' selected='selected'>Type</option></select>
    Le voici

  4. #4
    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 désactiver le champs , il faut utiliser la propriété disabled
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name= 'TYPE' disabled="disabled">
     <option value="Arrêt chaîne" selected>Arrêt chaîne</option>
     
     
     <option value="Trou" selected>Trou</option>
     
     
     <option value="Autre" selected>Autre</option>
     
    <option value='type' selected='selected'>Type</option></select>
    Pour grisé une partie de ton formulaire selon ton choix il faut récupérer l'élément qui conditionnera ton choix :
    0 pour le premier 1 pour le 2 etc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].monSelect.options[i].selected = true;
    et en fonction du choix il te faudra passer sur chacun des éléments que tu souhaitera désactiver

  5. #5
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Salut,

    En suivant les règles du forum on fait une recherche avant de poster ce qui nous donne comme résultat : activer un input lorsque l'on choisi une option ds un select.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Merci pour votre réponse rapide a tout les deux
    Désolé pour la recherche ca fait un bout de temps que je cherche sur le net et donc j'ai pas pensé a cherché dans le forum pardon...

    Par contre le chomeur

    quand je disais que je voulais rendre pas clicable un cahmp parmit le select

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name= 'TYPE' 
     <option value="Arrêt chaîne" selected>Arrêt chaîne</option>
     
     
     <option value="Trou" selected>Trou</option>
     
     
     <option value="Autre" selected>Autre</option>
     
    <option value='type' selected='selected'>Type</option></select>
    dans cet exemple ca aurait été de faire en sorte comme la que par défaut ce soit type par contre une fois que la personne a cliqué sur le select il ne puisse plus clicé sur type
    c'est ca que je voulais voir si cétait possible

    Mais pour ce qui de l'autre partie de ta réponse tu bien compris

    Pour grisé une partie de ton formulaire selon ton choix il faut récupérer l'élément qui conditionnera ton choix :
    0 pour le premier 1 pour le 2 etc

    Code :
    document.forms[0].monSelect.options[i].selected = true;et en fonction du choix il te faudra passer sur chacun des éléments que tu souhaitera désactiver
    Serait ce possible d'avoir un exemple

    en JS je sais juste faire des regex svp

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Comme je l'ai dit au dessus je ne connais pas beaucoup le JS

    On ma conseillé le sujet suivant a juste titre

    http://www.developpez.net/forums/d29...ion-ds-select/

    Je l'ai fait mais il doit me manquer quelque chose mais je ne sais pas d'ou
    Pouvez vous jeter un oeuil svp?

    Voici mon select en html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name= 'TYPE' >
     <option value="Arrêt chaîne" selected>Arrêt chaîne</option>
     
     
     <option value="Trou" selected>Trou</option>
     
     
     <option value="Autre" selected>Autre</option>
     
    <option value='type' selected='selected'>Type</option></select>
    Voici La fonction JS
    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
     
    <script type="text/javascript">
          function active(obj)
          {
            if (obj.selectedIndex == 'Trou')
            {
              obj.form.HEURE_DEBUT.disabled = '';
              obj.form.HEURE_DEBUT.focus();
     
    		  obj.form.HEURE_FIN.disabled = '';
              obj.form.HEURE_FIN.focus();
     
    		  obj.form.CONSTAT.disabled = '';
              obj.form.CONSTAT.focus();
     
    		  obj.form.DEMANDE.disabled = '';
              obj.form.DEMANDE.focus();
     
    		  obj.form.CAUSE.disabled = '';
              obj.form.CAUSE.focus();
     
    		  obj.form.IMPUTATION.disabled = '';
              obj.form.IMPUTATION.focus();
     
            }
            if (obj.selectedIndex == 'Autre')
            {
              obj.form.CONSTAT.disabled = '';
              obj.form.CONSTAT.focus();
     
    		  obj.form.CAUSE.disabled = '';
              obj.form.CAUSE.focus();
     
    		  obj.form.IMPUTATION.disabled = '';
              obj.form.IMPUTATION.focus();
            }
          }
        </script>

  8. #8
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="choix" size="1" onchange="active(this)">

  9. #9
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    J'ai mis ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name= 'TYPE' size="1" onchange="active(this)">
     <option value="Arrêt chaîne" selected>Arrêt chaîne</option>
     
     
     <option value="Trou" selected>Trou</option>
     
     
     <option value="Autre" selected>Autre</option>
     
    <option value='type' selected='selected'>Type</option></select>
    C'est pas bon?

  10. #10
    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
    enlève les selected seul

  11. #11
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    pardon pourrait tu me mettre un code quand ca ne va pas car dire fait ci fait ca c'est pas très clair

  12. #12
    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
    je ne vois pas comment être plus explicite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name= 'TYPE' size="1" onchange="active(this)">
     <option value="Arrêt chaîne">Arrêt chaîne</option>
     
     
     <option value="Trou">Trou</option>
     
     
     <option value="Autre">Autre</option>
     
    <option value='type' selected='selected'>Type</option></select>

  13. #13
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Ca ne fonctionne pas non plus

    la fonction :

    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
     
    <script type="text/javascript">
          function active(obj)
          {
            if (obj.selectedIndex == 'Trou')
            {
              obj.form.HEURE_DEBUT.disabled = '';
              obj.form.HEURE_DEBUT.focus();
     
    		  obj.form.HEURE_FIN.disabled = '';
              obj.form.HEURE_FIN.focus();
     
    		  obj.form.CONSTAT.disabled = '';
              obj.form.CONSTAT.focus();
     
    		  obj.form.DEMANDE.disabled = '';
              obj.form.DEMANDE.focus();
     
    		  obj.form.CAUSE.disabled = '';
              obj.form.CAUSE.focus();
     
    		  obj.form.IMPUTATION.disabled = '';
              obj.form.IMPUTATION.focus();
     
            }
            if (obj.selectedIndex == 'Autre')
            {
              obj.form.CONSTAT.disabled = '';
              obj.form.CONSTAT.focus();
     
    		  obj.form.CAUSE.disabled = '';
              obj.form.CAUSE.focus();
     
            }
          }
        </script>
    et la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name= 'TYPE' size="1" onchange="active(this)">
     <option value="Arrêt chaîne" >Arrêt chaîne</option>
     
     
     <option value="Trou" >Trou</option>
     
     
     <option value="Autre" >Autre</option>
     
    <option value='type' selected='selected'>Type</option></select>

  14. #14
    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
    il faut essayer de comprendre un minium :

    obj.selectedIndex ne renvois pas la valeur du select renvoyé , mais l'index de l'option choisie exemple , trou est a l'index 1 comme je te l'ai expliqué plus haut , il faut donc adapté ton code en fonction

  15. #15
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Désolé si ca ne voit pas mais j'essaye de comprendre ...

    Dis mois pour résumer la fonction

    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
     
    if (obj.selectedIndex == '1')
            {
              obj.form.HEURE_DEBUT.disabled = '';
              obj.form.HEURE_DEBUT.focus();
     
    		  obj.form.HEURE_FIN.disabled = '';
              obj.form.HEURE_FIN.focus();
     
    		  obj.form.CONSTAT.disabled = '';
              obj.form.CONSTAT.focus();
     
    		  obj.form.DEMANDE.disabled = '';
              obj.form.DEMANDE.focus();
     
    		  obj.form.CAUSE.disabled = '';
              obj.form.CAUSE.focus();
     
    		  obj.form.IMPUTATION.disabled = '';
              obj.form.IMPUTATION.focus();
     
            }
            if (obj.selectedIndex == '2')
            {
              obj.form.CONSTAT.disabled = '';
              obj.form.CONSTAT.focus();
     
    		  obj.form.CAUSE.disabled = '';
              obj.form.CAUSE.focus();
     
            }
          }
    ca dit bien : si obj.selectedIndex = 2
    alors l'utilisateur ne peut pas utilisé CONSTAT et CAUSE
    et que normalement ca les grise??

    Si c'est ca il y a encore une erreur quelque part et vu mes pauvres connaissances...

  16. #16
    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
    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
    if (obj.selectedIndex == '1')
            {
    //réactive les éléments
              obj.form.HEURE_DEBUT.disabled = '';
    	  obj.form.HEURE_FIN.disabled = '';
    	  obj.form.CONSTAT.disabled = '';
    	  obj.form.DEMANDE.disabled = '';
    	  obj.form.CAUSE.disabled = '';
    	  obj.form.IMPUTATION.disabled = '';
            }
            if (obj.selectedIndex == '2')
            {
    //Réactive les éléments
              obj.form.CONSTAT.disabled = '';
    	  obj.form.CAUSE.disabled = '';
    //dans al logique on doit désactiver les autres
              obj.form.HEURE_DEBUT.disabled = "disabled";
    	  obj.form.HEURE_FIN.disabled = "disabled";
    ...
            }
          }
    le focus ne sert a rien dans ce script , il sert a donner le focus a un champs ... mais a chaque fois tu changes de champs après l'avoir activé ...

  17. #17
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    IMPECABLEEEEEEEEEEE!!!!



    merci beacoup

    Pour mon autre problème je sais pas si tu l'as compris

    tu sais celui que quand l'utilisateur arrive sur la page il voit la liste déroulante avec ecrit type par défaut
    Mais ce que je voudrais c'est qu'une fois qu'il a cliqué dedans le choix type ne soit plus possible.

    Je sais pas si je suis clair...

  18. #18
    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
    dans ce cas tu dois supprimé le type ou le disabled

  19. #19
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    369
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 369
    Points : 61
    Points
    61
    Par défaut
    Ok donc ma demande est impossible a réalisé?

  20. #20
    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
    heu si , en fait en le rendant disabled, il ne pourra plus le sélectionné de nouveau ...

    dans le onchange , tu vérifis si le selectedindex est égal a celui de type et si oui tu récupères l'option et tu le rend disabled comme les champs de type text :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    obj.options[obj.selectedIndex].disabled = "disabled";

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. valeur d'une liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 7
    Dernier message: 15/04/2004, 16h11
  2. liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 23/03/2004, 10h35
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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