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 :

Ajout dynamique de listes déroulantes


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de razorlok
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 211
    Points : 111
    Points
    111
    Par défaut Ajout dynamique de listes déroulantes
    Bonjour à tous,


    Je cherche à permettre l'ajout de listes déroulantes au clic sur un bouton "ajouter un nouvel objet".

    Ne connaissant que très peu de choses au javascript, je me suis tourné vers un petit script fonctionnant très bien pour l'ajout de champs :
    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
    <script type="text/javascript">
     
    var c,c2, ch;
     
    // ajouter un champ avec son "name" propre;
    function plus(){
    c=document.getElementById('cadre');
    c2=c.getElementsByTagName('select');
    ch=document.createElement('select');
     
    ch.setAttribute('type','text');
    ch.setAttribute('name','ch'+c2.length);
    c.appendChild(ch);
     
    document.getElementById('sup').style.display='inline';
    }
     
    // supprimer le dernier champ;
    function moins(){
    if(c2.length>0){c.removeChild(c2[c2.length-1])}
    if(c2.length==0){document.getElementById('sup').style.display='none'};
    }
     
    </script>
    Mon soucis, c'est que le contenu de ma liste déroulante est générée par un include php comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select name="nom_objet"/>
    <?php include 'liste_objets.php'; ?>
    </select>
    ch=document.createElement('select'); ne me permet évidemment que d'ajouter une liste déroulante vide. Comment puis-je intégrer ma liste avec l'include dans le script de façon à pouvoir l'ajouter au clic ?

  2. #2
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    ch.setAttribute('type','text');
    Un select n'a pas d'attribut "type".
    Tu veux dire que les options du select crée devra être généré par PHP? Dans ce cas tu dois faire recours à AJAX. Jete un coup d'oeil sur ce tutoriel et fait des recherches sur le forum AJAX.
    Si un select est déjà sur la page et que voudrais les dupliquer, utilise simplement cloneNode.

    A+.

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

Discussions similaires

  1. Ajout d'une liste déroulante dynamique (PHP / Javascript)
    Par kelaan dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/12/2011, 13h01
  2. Dérouler dynamiquement une liste déroulante (combobox)
    Par yoyo1985 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/07/2007, 08h52
  3. remplir dynamiquement une liste déroulante
    Par transistor49 dans le forum ASP
    Réponses: 11
    Dernier message: 11/07/2006, 10h53
  4. Modification dynamique de liste déroulante
    Par Schuss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/05/2006, 09h21
  5. Ajout dans une liste déroulante
    Par auriolbeach dans le forum Access
    Réponses: 5
    Dernier message: 16/02/2006, 05h37

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