Ajout dynamique input dans formulaire
Bonjour,
J'ai fait un formulaire d'envoi de mail avec fichiers attachés. Les fichiers attachés sont ajouté dynamiquement dans le formulaire. On peut également en supprimer. Mon problème est que lorsqu'un fichier est supprimé, la fonction d'ajout ne fonctionne plus ensuite.
code javascript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
i = 1;
textLink = new Array();
supprimer = new Array();
function addFile(file)
{
j = i-1;
fichier_existe = 0;
if (j > 0)
{
for (x = 0; x < j; x++)
{
if (document.getElementById("Fichier" + x).value == file)
{
alert('Ce fichier est déjà ajouté');
fichier_existe = 1;
document.getElementById("Fichier" + j).value = "";
break;
};
};
};
if (fichier_existe == 0)
{
document.getElementById("Fichier" + j).style.display = "none";
d2 = document.getElementById("attTr2");
d1 = document.getElementById("attTr1");
iTd2 = document.createElement("td");
iTd1 = document.createElement("td");
iTd2.setAttribute("valign","top");
iTd1.setAttribute("valign","top");
iTd1.setAttribute("align","center");
iTd1.setAttribute("width", 120);
textLink[j] = document.getElementById("Fichier" + j).value.substr(document.getElementById("Fichier" + j).value.lastIndexOf("\\") + 1);
supprimer[j] = "Voulez-vous supprimer le fichier " + textLink[j] + " ?";
// For Internet Explorer
try {
newAttach = document.createElement("<input type='file' id='Fichier" + i + "' name='Fichier[]' onChange='Javascript: addFile(this.value);' />");
newLink = document.createElement("<a id='lien" + j + "' href='Javascript:void(0)' title='Supprimer " + textLink[j] + "' onClick='Javascript: if (confirm(supprimer[" + j + "])) {delFile(" + j + ");}'></a>");
newLink.appendChild(document.createTextNode(textLink[j]));
};
// For other browsers
catch (e) {
newAttach = document.createElement("input");
newAttach.setAttribute("type","file");
newAttach.setAttribute("id","Fichier" + i);
newAttach.setAttribute("name","Fichier[]");
newAttach.setAttribute("onChange","Javascript: addFile(this.value);");
newLink = document.createElement("a");
newLink.setAttribute("id","lien" + j);
newLink.appendChild(document.createTextNode(textLink[j]));
newLink.setAttribute("href","javascript:void(0)");
newLink.setAttribute("title","Supprimer " + textLink[j]);
newLink.setAttribute("onClick", "Javascript: if(confirm(supprimer[" + j + "])) {delFile(" + j + ");}");
};
iTd1.appendChild(newLink);
d1.appendChild(iTd1);
iTd2.appendChild(newAttach);
d2.insertBefore(iTd2,d2.childNodes[0]);
i++;
};
}
function delFile(num)
{
child2 = document.getElementById("Fichier" + num).parentNode;
d2 = document.getElementById("attTr2");
d2.removeChild(child2);
child1 = document.getElementById("lien" + num).parentNode;
d1 = document.getElementById("attTr1");
d1.removeChild(child1);
i--;
} |
et la partie html concernant l'ajout de fichiers :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
echo ' <TBODY>'."\n";
echo ' <TR valign="top" align="left" height=40 id="attTr1">'."\n";
echo ' <TD width=120 align="left" valign="top"><label for="Fichier"><FONT face="Arial, Helvetica, sans-serif" color=#000000 size=2>Fichiers attachés :</FONT></label></TD>'."\n";
echo ' </TR>'."\n";
echo ' <TR valign="top" height=40 id="attTr2">'."\n";
echo ' <TD width=1 align=left valign="top">'."\n";
echo ' <input type="file" id="Fichier0" name="Fichier[]" onChange="Javascript: addFile(this.value);" />'."\n";
echo ' </TD>'."\n";
echo ' </TR>'."\n";
echo ' </TBODY>'."\n";
echo ' </TABLE>'."\n"; |
Je ne vois pas trop ce qu'il peut se passer, si quelqu'un a une idée...
Merci d'avance