Retourner aux forums || Retourner au forum Programmation.web
Programmation.web : Ajouter dynamiquement des éléments à un formulaire
Posté par Manuel Dahmen (page perso, ) le 18 mai 2005Je fais un formulaire html qui a pour but d'uploader des images sur le serveur. http://localhost/~manuel/photo/ajouterchamp.html(...)
En gros je fais un div dans le formulaire et puis j'ajoute les inputs avec ceci:
document.getElementById('monformdiv').innerHTML=
document.getElementById('monformdiv').innerHTML
+"[input type='file' id='photo"+indice+"' name='photo"+indice+"'][br]";
Le problème est qu'à chaque ajout il reset les éléments précédemment ajoutés.
Alors j'ai fait une boucle dans la fonction d'ajout où je recopie les valeurs des inputs dans un tableau avant l'ajout puis je les recopie à nouveau dans les inputs après l'ajout.
Bref j'en viens à mon problème: ça marche avec des inputs de type texte mais pas avec des fichiers (j'imagine que c'est pour des raisons de sécurité).
Quelle est la solution?
> Lire le message (4 commentaires, moyenne: 1,3).
Avec la bonne adresse ça ira mieux
http://manueldahmen.no-ip.org/~manuel/photo/ajouterchamp.html(...)
Il n'y en a pas
Comme tu le supposes très justement, pour raisons de sécurité, on ne peut pas manipuler (et surtout pas en écriture) la valeur des input type file dans les browsers récents.
Tu peux par contre essayer une autre approche, où au lieu de créer des champs, tu en masquerais/démasquerais au besoin via CSS...
#define MAGIC 0xdefaced /* I should've patented this number -cliph */
Evite innerHTML
Si tu veux garder les valeurs précédemment rentrées, il faut utiliser les objets node et non pas innerHTML. C'est un peu moins bien supporté par les navigateurs (ca doit quand même marcher sur tous les navigateurs "récents", même IE 5.5), mais c'est beaucoup plus propre et puissant.
Mot clés : document.createElement, node.appendChild.
Une bonne référence : http://fr.selfhtml.org/javascript/objets/index.htm(...) .
-
[^]Re: Evite innerHTML
Posté par Manuel Dahmen (page perso, ) le 19/05/2005 à 12:11. (lien). Évalué à 1.Ça marche parfaitement, et merci pour la référence.
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.web



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.