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

Résolu/Fermé
Signaler
-
 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

Messages postés
34674
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2022
3 992
Bonjour,

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

0
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
Messages postés
34674
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2022
3 992 > 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
>
Messages postés
34674
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2022

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
Messages postés
34674
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2022
3 992 > M_Tufux
 input.name = "option[]";
//pour la class
input.className = " form-control";

//maxlength
input.setAttribute('maxLength',4);

//etc...
0
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