cathy9999
Messages postés68Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention10 décembre 2023
-
2 juil. 2007 à 15:37
cathy9999
Messages postés68Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention10 décembre 2023
-
11 juil. 2007 à 12:00
Bonjour,
Dans un formulaire qui a un champ qui permet d'uploader plusieurs fichiers, j'aimerais mettre un bouton "inserer" a coté de celui ci pour qu'il puisse selectionner le nom de l'image prête à être uploader, et que ce nom soit inserer dans la zone textarea. ou un glisser deposer.
Est ce possible? si oui comment faire? si non quel solution proposez vous?
J'ai déja mon champ upload et qui charge mes fichiers grace a mn bouton envoyer.
Quand je clique sur le bouton upload, ca me marque le chemin comme ceci C:\DocumentsandSettings\image1.jpg
et je recherche a faire un bouton inserer qui quand on cliquera dessus, prendre la valeur image1.jpg et ira l'inserer dans ma textarea avec les crochets <!-- / message -->
merci
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 juil. 2007 à 16:17
utiliser onchange sur la balise <select onchange="(**)">
(**) "l'option choisie" c'est this.options[this.selectedIndex].text
avec ça tu fais la même chose que dans l'autre fonction.
attention à onchange... si le select n'a pas de siez= ou si
ce size=1, ma 1ère ligne est sélectionnée par défaut et
ne sera donc opérationnelle qu'après avoir cliqué sur une autre ligne
donc
mettre <select size=2 au moins... ou
perso, je fais : <select.... onfocus="this.selectedIndex=-1;"... ou
d'autres préfère mettre une 1ère option bidon et tester si
selectedIndex==0, et dans ce cas ne rien faire
chacun ses goûts, et les vaches seront bien gardées...
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 4 juil. 2007 à 12:55
on réflêchit parfois lentement ( enfin, moi souvent ! )
pour l'ajout des input file, il faudrait essayer avec createElement et appendChild...
forts soupçons que ça devrait baigner !
<hr />
cathy9999
Messages postés68Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention10 décembre 2023 4 juil. 2007 à 14:23
var _indice=0;
function addInputFile(id) {
var dest=document.getElementById(id);
var div=document.createElement("div");
var input=document.createElement("input");
input.type="file";
input.id="f"+_indice;
div.appendChild(input);
div.appendChild(createBoxDel(div));
dest.appendChild(div);
_indice++;
}
function createBoxDel() {
var input=document.createElement("input");
input.type="checkbox";
input.onclick=function() {
var p=this.parentNode;
div=p.parentNode;
div.removeChild(p);
}
return input;
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 5 juil. 2007 à 11:02
je t'assure que mon exemple fonctionne, sans vider les champs
( coté serveur aussi ).
si tu veux limiter, n'ajoute que si num est <= maxi
dès que j'ai trouvé un moyen élégant de supprimer des fichiers
à télécharger ( j'ai une solution qui fonctionne mais qui ne me
plait pas ), je pense faire un truc plus général.
cathy9999
Messages postés68Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention10 décembre 2023 5 juil. 2007 à 11:34
Alors je recapitule, ma synthaxe devrait être comme cela :
var num<= 10
function ajout()
{ var i=document.createElement("input");
'si je veux un bouton inserer nom a côté de chaque champ ajouté'
i.type ="file";
i.id="fic"+num;
i.name="fic[]"
var d=document.createElement("div");
d.appendChild(i);
document.getElementById('divFichiers').appendChild(d);
num++;
}
function inserer_nom(num) {
var text = document.getElementById('fichier_'+num).value;
var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier ""
document.getElementById('textarea').value+= '\n';
}
cathy9999
Messages postés68Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention10 décembre 2023 5 juil. 2007 à 11:38
Je ne vais jamais m'en sortir, autre souci encore : ca upload juste la premiere image du premier champ! je suis débutante...est ce que je vais réussir? snif ...
cathy9999
Messages postés68Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention10 décembre 2023 5 juil. 2007 à 14:27
Merci beaucoup! tout marche maintenant il me reste plus qu'a l'adapter a ma fonction inserer nom et de faire pour ma liste déroulante :
var num= 0;
function ajout()
{ var i=document.createElement("input");
i.type="file";
i.id="fic"+num;
i.name="fic[]";
var d=document.createElement("div");
d.appendChild(i);
document.getElementById( 'divFichiers' ).appendChild(d);
var b=document.createElement("input");
b.type="button";
b.value="inserer nom image";
b.onclick= inserer_nom
b.width="120";
d.appendChild(b);
num++;
}
function inserer_nom(num)
{ var text = document.getElementById('fichier_'+num).value;
var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier ""
document.getElementById('textarea').value+= '\n';
}
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 5 juil. 2007 à 14:54
met ta fonction... comme dans mon exemple ( pour supprimer )
b.onclick=function()
{ var text = document.getElementById('fichier_'+num).value;
var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier ""
document.getElementById('textarea').value+= '\n';
}
pour ton "script actuel".
si tu utilises la source UMP, num n'est pas utilisé.
regarde parentNode , ...Child....