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 :

Afficher un nouveau formulaire de type select


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Afficher un nouveau formulaire de type select
    Bonjour,

    Voilà j'ai un élément de type select créé en php et je voudrais le dupliquer si on appuie sur un lien "Ajouter un DVD". J'ai fait quelque chose qui ne marche pas et qui n'ai pas forcément très bien (ca fait vraiment pas longtemps que je fais du javascript).

    Voici 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
     
    var nbbloc = 1;
    var texte_base = "";
    function changeMessage()
    {
    nbbloc++;
    texte2 = document.getElementById(\"bloc\").innerHTML;
    // Le formulaire est dans ce bloc
    if (nbbloc == 2) {
       texte_base = texte2;
       texte_base.replace(/selected=\"selected\"/,\"\");
    }
    dvdselect = document.forms['form_dvd'].elements['dvd'].selectedIndex;
    texte_modif = texte_base;
    chaine = '\"dvd'+nbbloc+'\"';
    texte_modif.replace(/\"dvd\"/,chaine);
    texte2 = texte2+'<br/>'+texte_modif;
    document.getElementById(\"bloc\").innerHTML = texte2;  
    }
    Quand j'exécute la fonction, la liste déroulante est bien ajoutée par contre je me perds l'option sélectionnée. D'après ce que j'ai compris, le javascript ne considère plus le select comme un select (document.forms['form_dvd'].elements['dvd'] n'est plus trouvé au 2eme clic) donc je n'arrive pas à faire document.forms['form_dvd'].elements['dvd'].options[dvdselect].selected = true;

    Si quelqu'un a une solution plus simple ou une piste, je suis preneur.

    Merci beaucoup

    EDIT : J'ai trouvé une fonction qui cache une partie du texte donc je pourrais créer les select les cacher ou les faire réapparaitre. Le seul problème c'est que je serai obligé de limiter à x select.

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    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
    <html>
    	<head>
    		<title>select</title>
    		<script type='text/javascript'>
    			function ajoutDvd(){
    				model = document.getElementById('dvdbase');
    				nouv = model.cloneNode(true);
    				nouv.options[model.selectedIndex].selected = true;
    				document.body.appendChild(nouv);
    			}
    		</script>
    	</head>
    	<body>
    		<input type='button' onclick='ajoutDvd()' value='Ajouter' />
    		<select name="dvd[]" id='dvdbase'>
    			<option />bla
    			<option />bli
    			<option selected='selected'/>blo
    		</select>
    	</body>
    </html>
    essayes de penser au balises code s'il te plait.
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mai 2004
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup j'ai essayé et ca marche pas encore dans mon code mais ma télévision vient de rendre l'âme et il se fait tard alors je verrais ça demain.

    Enfin j'ai modifié un peu le code pour copier juste avant le bouton :

    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
    <html>
    <head>
      <title>select</title>
    </head>
    <body>
     <script type='text/javascript'>
     
    function ajoutDvd(){
            model = document.getElementById('blocdvd');
            nouv = model.cloneNode(true);
            // document.body.appendChild(nouv);
    	document.getElementById('bloc').insertBefore(nouv,document.getElementById('boutondvd'));
             }
    </script>
     
    <div id='bloc'>
     
    <div id='blocdvd'>
          DVD Selectionne :<select name="dvd[]" id='dvdbase'>
             <option />bla
             <option />bli
             <option selected='selected'/>blo
          </select>
    </div>
    <input type='button' onclick='ajoutDvd()' value='Ajouter' id='boutondvd' />
    </div>
    </body>
    </html>
    Par contre, je ne comprends pas comment "on" fait pour reconnaître le 1er select du 2eme. A priori je pensais qu'on récupérait les valeurs $dvd[0], puis $dvd[1] mais ça me parait un peu magique (et donc ca ne marche pas). Je regarderai ça mieux demain.

Discussions similaires

  1. [Drupal] Selectionner une valeur par défaut dans un formulaire de type select
    Par clem9085 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/11/2014, 14h28
  2. Réponses: 4
    Dernier message: 14/04/2014, 23h29
  3. [MySQL] Mettre un champ selected dans un formulaire de type select
    Par bl4ckwolf dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/07/2007, 16h11
  4. Réponses: 3
    Dernier message: 23/01/2007, 00h42
  5. Afficher/cacher des éléments de type select en fonction d'autres
    Par GLDavid dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2006, 10h06

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