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 2005
0
Salut tout le monde,

Je 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).  

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.

Avec la bonne adresse ça ira mieux

Posté par Manuel Dahmen (page perso, ) le 18/05/2005 à 19:58. (lien). Évalué à 1.

http://manueldahmen.no-ip.org/~manuel/photo/ajouterchamp.html(...)

Il n'y en a pas

Posté par Cali_Mero () le 18/05/2005 à 20:13. (lien). Évalué à 2.

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

Posté par Thomas Hervé () le 19/05/2005 à 07:44. (lien). Évalué à 1.

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