Augmenter nombre inputs dans form HTML en fonction de l'utilisat

Résolu
M_Tufux -  
 M_Tufux -
Bonjour,

Toujours dans le cadre de mon examen de diplôme, j'aimerais faire la chose suivante:

Pour être bref, mon site permet de gérer des sondages. Une sorte de doodle où il faut voter.

Lorsqu'un utilisateur crée un sondage, il arrive sur un formulaire où il renseigne titre, description du sondage ainsi que les options pour lesquelles voter. J'aimerais afficher de base 2 input pour les choix 1 et 2, mais j'aimerais savoir s'il y a possibilité d'augmenter le nombre d'input manuellement depuis le formulaire, un peu comme quand on insère des lignes dans phpMyAdmin.

Est-ce que qqn pourrait me renseigner svp?
Merci!

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Oui c'est possible ... Il suffit de les créer en Javascript.

    0
    1. M_Tufux
       
      Yep!

      Merci c'est bon j'ai trouvé sur ce lien (pas sûr que le lien soit légal mais bon):
      https://openclassrooms.com/forum/sujet/ajouter-champ-formulaire-automatiquement-52099

      Et autre question maintenant, comment je peux faire pour conserver les inputs déjà écrits lorsque j'en ajoute d'autres?
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > M_Tufux
       
      Va falloir commencer à être un peu plus précis dans tes questions ...
      1 - Montrer le code que tu utilises (en suivant ce tuto https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code )

      2 - En expliquant en détail ce que tu souhaites faire.
      Par exemple ... les "conserver" .. c'est à dire ? Suite à quelle opération ?
      0
    3. M_Tufux > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Yep, je n'ai pas l'icône pour insérer une image mais bref.

      Voici mon code

      <label>Option</label>
      <input class="form-control" type="text" name='option[]' placeholder="Option/candidat" maxlength="4"/><br/>
                    
      <div id="option">
       <!-- 2 OPTIONS PAR DEFAUT -->
      <input class="form-control" type="text" name='option[]' placeholder="Option/candidat" maxlength="4"/><br/>
       </div>
      
                    <!-- AJOUT D OPTIONS AVEC CLIC SUR + -->
                   <code js>
                    <script type="text/javascript" >
                        var div = document.getElementById('option');
                        function addInput(nam){
                            var input = document.createElement("input");
                            input.name = option;
                            div.appendChild(input);
                        }
                        function addField() {
                            addInput("option[]");
      
                            div.appendChild(document.createElement("br"));
                        }
                    </script>
                    

      </code>

      Ce que je veux faire c'est: Lorsque je clique sur le bouton "+", un nouveau input apparaît avec un
      <br/>
      . Le contenu des inputs déjà remplis doit rester et ceux que je crée via le bouton "+" doivent garder les mêmes propriétés que les inputs de base.

      Est-ce que je me suis mieux exprimé?
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > M_Tufux
       
       input.name = "option[]";
      //pour la class
      input.className = " form-control";
      
      //maxlength
      input.setAttribute('maxLength',4);
      
      //etc...
      
      0
    5. M_Tufux
       
      Yes c'est bon j'ai. Merci!

      Voici ma solution pour le coup (j'ai la flemme d'indenter):

      <label>Option</label>
                    <input class="form-control" type="text" name='option[]' placeholder="Option/candidat" maxlength="4"/><br/>
                    <div id="option">
                      <!-- 2 OPTIONS PAR DEFAUT -->
                      <input class="form-control" type="text" name='option[]' placeholder="Option/candidat" maxlength="4"/><br/>
                    </div>
      
                    <!-- AJOUT D OPTIONS AVEC CLIC SUR + -->
                    <script type="text/javascript" >
                      var div = document.getElementById('option');
                      function addInput(nam){
                          var input = document.createElement("input");
                           input.name = "option[]";
                           input.className = "form-control";
                           input.placeholder = "Option/candidat";
                          div.appendChild(input);
                      }
                      function addField() {
                          addInput("option[]");
                          div.appendChild(document.createElement("br"));
                      }
                    </script>
      
      0