[JS] DOM et generation de formulaire

Dark-Harmony -  
 Utilisateur anonyme -
Salut à tous,

J'ai un soucis qui me bloque pas mal et n'étant pas un pro du JS, j'ai du mal à m'en sortir.

Je dois générer un formulaire (file) de manière automatique. Lorsque l'utilisateur, selectionne sa photo, celle-ci s'upload automatique, avec preview etc... lorsque celle-ci est uploadée, il faut qu'un deuxieme champ file apparaisse en dessous, pour ce faire je rappel ma fonction generant le formulaire malheureusement celui-ci ne s'ajoute pas, mais j'ai plus l'impression qu'il remplace celui déjà existant.

Voici mon code :


function formPhoto(id)
{

var table = document.createElement('table');
table.id = 'formUp'+id;
var tr = document.createElement('tr');
var td = document.createElement('td');
td.id = 'formUp'+id;

var td2 = document.createElement('td');
td2.id = 'nameUp'+id;

var form = document.createElement('form');
form.action = 'php/annonce/uploadPhoto.php';
form.method = 'post';
form.enctype = 'multipart/form-data';
form.name = 'form'+id;
form.target = 'uploadTarget';

var input = document.createElement('input');
input.type = 'file';
input.id = 'photo'+id;
input.setAttribute("onChange", "uploadPhoto("+id+")" );

td.appendChild(input);
tr.appendChild(td);
tr.appendChild(td2);
table.appendChild(tr);
form.appendChild(table);
document.getElementById("formPhoto").appendChild(form);
}



Mon problème se situe dans le getElementById, le formulaire ne "s'incrémente" pas, auriez-vous une petite astuce ou une autre solution que le getElementById

Merci beaucoup à vous :D
A voir également:

2 réponses

Utilisateur anonyme
 
essaie mettre tous tes champs a l'interieur d'un <div id="MonDiv" style="display: none"></div>
ca te permettra de les cacher.

if( // ta condition pour que le formulaire apparaisse ) { document.getElementById("MonDiv").style.display="block"; }

En mettant la bonne condition , je pense que ca va marcher.
0
Dark-Harmony
 
En fait c'est un formulaire d'upload de photo et j'aurai aimé justement ne pas devoir définir un nombre maximal de champ et justement les ajouter dynamiquement, tu penses que ce n'est pas possible ?

Merci pour ta réponse en tout cas :-)
0
Utilisateur anonyme
 
on suppose que ton input est ainsi <input type="FILE" onclick="duplique( );" />

tu met ce code dans ton fichier .js:

function duplique()
{
document.write( //tu met tes balises du formulaire que tu veux afficher!! )
}
0