Generer des champs texte a partir d'un <select> [Résolu]

Signaler
Messages postés
8
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
7 février 2008
-
Messages postés
8
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
7 février 2008
-
Bonjour  à tous,

Je suis en train de réaliser un formulaire d'enquete et j'ai une liste déroulante avec un certain nombre de chiffre 1,2,3,4,5 etc.. et je cherche a génerer quand je selectionne une valeur un nombre de champs textes correspondant au chiffres de la liste déroulante.

Cela a pour but de generer autant de champ que la question a besion de reponse...

Si quelqu'un a une idée je suis prenneur car je bloque...

Merci a tous par avance

Morgan

3 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
document.write efface éffectivement le contenu du document donc mauvaise méthode
un méthode consisterait à mettre tes INPUTs dans un DIV

1/ création d'un DIV avec un ID par exemple D_INPUT

DIV vide

2/ écriture dans celui ci à l'aide de la propriété innerHTML
var Obj = document.getElementById( 'D_INPUT');
Obj.innerHTML = "Le nouveau texte...."

donc dans ton cas la fonction devirndrait
function affiche_text_reponse(form) {
  var Obj  = document.getElementById( 'D_INPUT');



// Recup du DIV






  var Html = ""; // le nouveau contenu
  var nb_rep = eval(form.nb_reponse.value);
  for (i=1; i<=nb_rep; i++) {
    Html += 'Reponse ' + i + ': ';
  }
Obj.innerHTML = Html; // ecriture dans le DIV
}



;0)
Messages postés
8
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
7 février 2008

Voici mon code source ca avance... j'arrive a génere des champs mais il recharge ma page et n'affiche que les champs et supprime donc le reste du code de plus au niveau de la mise en page il ne me saute pas de ligne.

<script language="Javascript" type="text/javascript">
      function affiche_text_reponse(form) {
                 var nb_rep = eval(form.nb_reponse.value);
                 //alert("nombre reponse " +nb_rep);
                 for (i=1; i<=nb_rep; i++) {
                         //alert(i);
                         document.writeln('Reponse ' + i + ': ');
                   }
      }

</script>

<select name="nb_reponse" onchange="affiche_text_reponse(this.form)" onclick="affiche_text_reponse(this.form)">
             <option value="1"> 1 </option>
             <option value="2"> 2 </option>
             <option value="3"> 3 </option>
             <option value="4"> 4 </option>
</select>

Des idées??

Morgan
Messages postés
8
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
7 février 2008

Merci c'est exactement ca merci encore....

Morgan