[JS] DOM et generation de formulaire
Dark-Harmony
-
Utilisateur anonyme -
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
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
2 réponses
-
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. -
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 :-)