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 :

Ecrire dans un select


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 35
    Points
    35
    Par défaut Ecrire dans un select
    Bonjour,

    Je souhaiterai faire un formulaire avec un select ou on puisse écrire comme on peut trouver dans la barre de google. liste définie ou possibilité de rajouter une option si le choix de l'internaute ne figure pas dans la liste.

    Est-ce possible ?


    Pour visualiser ce que je demande :

    http://img98.imageshack.us/img98/2882/googlexz5.png

    Merci d'avance

  2. #2
    Membre éclairé Avatar de djoyeux
    Profil pro
    Inscrit en
    Août 2007
    Messages
    595
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 595
    Points : 668
    Points
    668
    Par défaut
    Pas avec les balise HTML standard.

    Peut-être avec du javascript mais la je connais pas trop.
    Dieu de l'orthographe pardonne moi.
    Ne pas confondre language SMS et abréviation. ça n'a rien a voir...

  3. #3
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Effectivement tu dois passer par du javascript.
    Voici un bout de code tout fait.
    Je te laisse te débrouiller pour l'adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script language="JavaScript" type="text/javascript">
    function add() {
    document.edi.category.options[document.edi.category.options.length] = new Option(document.edi.newcat.value,document.edi.newcat.value);
    document.edi.newcat.value = '';
    }
    </script>
     
    <select name="category">
    <option value="0">---Categorie---</option>
    </select>
    <input type="text" size="15" name="newcat"><input type="button" onclick="javascript:add();" value="Ajouter">
    Tu verras ce n'est pas très compliqué.
    Si tu fais juste un copier coller dans ta page cela devrait fonctionner

    @+
    cadou
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  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
    Bonjour,
    Citation Envoyé par cadoudal56 Voir le message
    Effectivement tu dois passer par du javascript.
    Voici un bout de code tout fait.
    Je te laisse te débrouiller pour l'adapter :
    Effectivement, c'est la bonne méthode
    Quelques petites corrections de syntaxe quand même.
    De plus, cadoudal56 a dû oublier que sa liste était dans un form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript">
    function add() {
    var objListe = document.getElementById('category');
    var valTxt = document.getElementById('newcat').value;
    objListe.options[objListe.options.length] = new Option(valTxt,valTxt);
    valTxt = '';
    }
    </script>
     
    <select name="category" id="category">
    <option value="0">---Categorie---</option>
    </select>
    <input type="text" size="15" name="newcat" id="newcat"><input type="button" onclick="add();" value="Ajouter">
    A+
    Pour tout savoir sur l'utilisation du forum

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

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    bonjour,


    Je ne sais pas si ça peut répondre à ton problème, mais voici un autre exemple ici :
    http://www.developpez.net/forums/sho...42#post2100442

    Je ne garantie pas que le code fonctionne sous tous les navigateurs.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Tout d'abord merci à vous pour vos réponses.

    J'ai opter pour la solution de Auteur :

    Comme vous pouvez le voir dans cette page :

    http://www.eloquor.fr/mod/ixp_compos...e1/auxerre.php

    Cela fonctionne mais j'ai maintenant un autre souci c'est que j'aimerai bien bien attribuer la même liste à plusieurs Input, mais lorsque je clic sur tous les inputs de ma page cela ne modifie que le premier. Je me doute que cela vient des fonctions en javascript mais je n'arrive pas à déterminer ce qu'il faut changer pour que la modification soit effectuer pour chaque input.

    Faut-il écrire une fonction différente pour chaque Input ou peut-on attribuer le choix pour chaque Input avec une seule fonction.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 60
    Points : 95
    Points
    95
    Par défaut
    Bonjour,

    Tu dois donner un identifiant différent pour chacune de tes liste (idListe_1, idListe_2, etc...) et faire appel à tes fonctions en leur transmettant a chaque fois l'id de la liste à gérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="gestionListe('idListe_1')"
    Si tu as besoin de plus d'aide n'hésite pas a demander.
    Bon courage.

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 650
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 142
    Points
    11 142
    Par défaut
    la version de cadoudal56 est sans doute plus facile à mettre en place. Voici une variante :
    Code html : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <html>
    <head>
    <title></title>
    <style type="text/css">
    <!--
    #inputChoix{
     display: none;
     margin: 20px;
    }
     
    //-->
    </style>
     
     
    <script type="text/javascript">
    function add() 
    {
     var objListe = document.getElementById('category');
     var valTxt = document.getElementById('newcat').value;
     var opt = objListe.options[objListe.options.length-1];
     
     objListe.options[objListe.options.length-1] = new Option(valTxt,valTxt, false, false);
     objListe.options[objListe.options.length] = opt;
     document.getElementById('newcat').value = "";
    }
     
    function clicListe(obj)
    {
     var choix = parseInt(obj.options[obj.selectedIndex].value)
     if (choix==-1)
     {
        document.getElementById('inputChoix').style.display = "block";
     }
     else
     {
        document.getElementById('inputChoix').style.display = "none";
     }
     
    }
    </script>
    </head>
     
    <body>
     
    <form name="" method="post" action="" enctype="">
                   <select id="category" onchange="clicListe(this)">
                           <option selected="selected" value="0">-- Faites votre choix --</option>
                           <option value="1">choix 1</option>
                           <option value="2">choix 2</option>
                           <option value="3">choix 3</option>
                           <option value="4">choix 4</option>
                           <option value="-1">autre choix >></option>
                   </select>
                   <div id="inputChoix">
                        <input type="text" size="15" id="newcat" />
                        <input type="button" onclick="add();" value="Ajouter" />
                   </div>
      </form>
     
    </body>
     
    </html>

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Je viens de trouvez la solution à mon problème à 2h50 du matin


    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <style type="text/css">
    <!--
    #inputChoix{
     display: none;
     margin: 20px;
    }
     
    //-->
    </style>
     
     
    <script type="text/javascript">
    function add() 
    {
     var objListe = document.getElementById($name);
     var valTxt = document.getElementById('newcat').value;
     var opt = objListe.options[objListe.options.length-1];
     
     objListe.options[objListe.options.length-1] = new Option(valTxt,valTxt, false, false);
     objListe.options[objListe.options.length] = opt;
     document.getElementById('newcat').value = "";
    }
     
    function clicListe(obj)
    {
     var choix = parseInt(obj.options[obj.selectedIndex].value)
     if (choix==-1)
     {
        document.getElementById('inputChoix').style.display = "block";
     }
     else
     {
        document.getElementById('inputChoix').style.display = "none";
     }
     
    }
    </script>
     
    <form name="formfocus" method="post" action="" enctype="">
                   <select name="category1" id="category1" onChange="clicListe(this), $name=this.id">
                           <option selected="selected" value="0">-- Faites votre choix --</option>
                           <option value="1">choix 1</option>
                           <option value="2">choix 2</option>
                           <option value="3">choix 3</option>
                           <option value="4">choix 4</option>
                           <option value="-1">autre choix >></option>
                   </select>            
                   <select name="category2" id="category2" onChange="clicListe(this), $name=this.id">
                           <option selected="selected" value="0">-- Faites votre choix --</option>
                           <option value="1">choix 1</option>
                           <option value="2">choix 2</option>
                           <option value="3">choix 3</option>
                           <option value="4">choix 4</option>
                           <option value="-1">autre choix >></option>
                   </select>             
      </form>
     
                     <div id="inputChoix">
                        <input type="text" size="15" id="newcat" />
                        <input type="button" onClick="add();" value="Ajouter" />
                   </div>
    Vous pouvez testez ici http://www.eloquor.fr/script.php

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Mon code fonctionne sur Firefox mais ne fonctionne pas sur IE. Il me dit que $name n'est pas défini. Quel est la différence entre firefox et IE ?

    Merci d'avance.

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

Discussions similaires

  1. ecrire dans un input type select avec jquery
    Par stomerfull dans le forum jQuery
    Réponses: 1
    Dernier message: 29/09/2009, 18h23
  2. ecrire deux listes dans un select
    Par rherrad dans le forum Struts 1
    Réponses: 35
    Dernier message: 26/07/2007, 15h18
  3. Réponses: 3
    Dernier message: 23/09/2003, 09h12
  4. [Sybase] Select dans une select loop en C
    Par Claudio dans le forum Sybase
    Réponses: 2
    Dernier message: 29/04/2003, 18h06
  5. Ecrire dans un fichier sans supprimer le reste
    Par koan_sabian dans le forum Linux
    Réponses: 4
    Dernier message: 20/02/2003, 15h44

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