Apparition de champs textes dynamiquement

Bonjour,

Je souhaite reproduire le même système de génération dynamique de champs textes se trouvant sur les forums PHPBB, à la création d’un sondage, et plus précisément par le bouton ‘ajouter l’option’.

Je suis plongé dans la source mais c’est loin d’être simple, alors je peux avoir un coup de main ? Javascript ? PHP ?

?

C’est simple : phpbb a plusieurs boutons :

  1. Envoyer, de nom ‘send’ (ou peu importe)
  2. Prévisualiser, de nom ‘preview’
  3. Ajouter options, de nom ‘poll_add_option’

Quand il doit générer le formulaire, il récupère les champs du sondage (nommés foo[]) et fait la vérification suivante :

[cpp]if ( isset( $_POST[‘send’] ) )
/* j’envoie sur le forum /;
elseif ( isset( $_POST[‘preview’] ) )
/
je fais la preview et je raffiche les données /;
elseif ( isset( $_POST[‘poll_add_option’] ) )
/
j’ajoute une option */;[/cpp]

Bien sûr, phpbb utilise un moteur de template, mais l’idée y est.

ou alors, tu le fais en javascript… c ce que je fait a chaque fois…

CODE JS :

function adddoc(){
nbr = parseInt(window.document.getElementById(‘nbr’).value);
window.document.getElementById(‘upload’+nbr).innerHTML = "
<input type=‘file’ name=‘doc"+(nbr+1)+"’><span id=‘upload"+(nbr+1)+"’></span>"
window.document.getElementById(‘nbr’).value = (nbr+1);
}

CODE PHP :

<input type="file" name="doc1">
<span id="upload1"></span>
<input type="hidden" name="nbr" value="1">
<input type="button" value="Ajouter un autre document" onClick="adddoc();">

ici, j’utilise des champs filems rien ne t’empeche de mettre des champs test.

tite explication… par defaut, il y a un champs file de nom doc1, une balise span ou le code pour le procahin champs sera mis et un champs caché nbr qui contient le nombre d’input sur la page

qd tu clik sur “ajouter un autre doc”, le JS regarde combien de champs se trouve sur la page (en regardant la valeur du champs caché “nbr”) et ajoute le champs dans les balises ‘span’. et incremente de 1la valeur du champs caché ‘nbr’. commeca, si tu appuie de nouveau sur ajouter, il reajoutera un nouveaux champs file dans le span crée précédement. en fait, le span2 se trouvera dans le span1, le span3 se trouvera dans le span2 qui lui se trouve dans le span1, etc, etc…

j’espere que ca t’aidera :slight_smile:

edit d’un modo