cathy9999
Messages postés63Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention23 mars 2016
-
2 juil. 2007 à 15:37
cathy9999
Messages postés63Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention23 mars 2016
-
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 6 juil. 2007 à 12:16
ça devrait le faire...
j'en suis là. reste à tester coté php
<script type="text/javascript">
var num=0;
function ajout()
{ var i=document.createElement("input");
i.type="file";
i.id="fichier_"+num;
i.name="fichier[]";
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=function() { inserer_nom(this); }
b.width="120";
d.appendChild(b);
var c=document.createElement("input"); // ajout du bouton pour supprimer
c.type="button";
c.value="Supprimer"; //nom du bouton
c.onclick=function() { //lors du clique, appel de la fonction qui suit
this.parentNode.style.display="none"; //suppresion d'un champ input
this.parentNode.getElementsByTagName("input")[0].name=""; }
c.width="81"; //Taille du bouton
d.appendChild(c);
num++;
}
function inserer_nom(num)
{ var text = num.parentNode.getElementsByTagName("input")[0].value;
var fichier = text.substr(text.lastIndexOf('\\')+1);
document.getElementById('textarea').value+= '\n';
}
</script>
[javascript:void(ajout()); Ajouter un champ]
<textarea id="textarea"></textarea>
<script type="text/javascript"><!-- à la place du 1er bouton...-->
ajout();
</script>
ET supprimer le dans le textarea lorsqu'on supprime un input file !
( regardez .replace pourquoi pas... )
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 2 juil. 2007 à 16:03
Bonjour,
le contenu du champ file c'est : document.getElementById("id du file").value
le contenu d'un textarea :
document.getElementById("id du textarea").value
un bouton,
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 2 juil. 2007 à 17:07
Salut, je sais pas si j'ai tout tout bien compris mais j'en ai retirer ceci, lors de la selection d'une image, il faudrait que seul le nom ( ie sans le chemin ) soit afficher entre des balises "
alert ( "" );
}
</script>
</head>
</html>
Comme je ne sais pas trop.....
[o-_-o]
Vous n’avez pas trouvé la réponse que vous recherchez ?
document.getElementById('leschamps_'+i).innerHTML = '
';
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '[javascript:create_champ('+i2+') Ajouter un champ]' : '';
}
function inserer_nom() {
var text = document.getElementById('fichier_1').value;
var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier ""
document.getElementById('textarea').value += fichier+'\n';
}
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 3 juil. 2007 à 10:12
Ce qui paraît très logique, et non buggé ;o)
En fait dans la méthode inserer_nom , il faudrait lui passer en paramètre l'identifiant du champs :
ce qui arriverait à un truc ( attention pas testé ) du genre:
unction create_champ(i) {
var i2 = i + 1;
document.getElementById('leschamps_'+i).innerHTML = '
';
document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '[create_champ('+i2+') Ajouter un champ]' : '';
}
function inserer_nom(_id) {
var text = document.getElementById(_id).value;
var fichier = text.substr(text.lastIndexOf('\\')+1); //LastIndexOf recuperes le dernier ""
document.getElementById('textarea').value += fichier+'\n';
}
[o-_-o]
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 juil. 2007 à 10:21
pas très loin....
<script type="text/javascript">
function create_champ(i) {
var i2 = i + 1;
document.getElementById('leschamps_'+i).innerHTML =
''+
'
';
document.getElementById('leschamps_'+i).innerHTML +=
(i <= 10) ? '[create_champ('+i2+') Ajouter un champ]' : '';
}
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+= fichier+'\n';
}
</script>
[javascript:void(create_champ(2)); Ajouter un champ]
cathy9999
Messages postés63Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention23 mars 2016 3 juil. 2007 à 11:16
Autre souci aussi, je souhaite faire le même bouton à côté d'un menu déroulant qui fait le récapitulatif d'image présente dans un dossier. mais comment lui dire quand je clique sur inserer, d'inscrire le nom présent dans la liste déroulante ???
Ma liste déroulante :
<select name= "listimages">
<option value="">Images déja présentes</option>
<?php
//ensuite on ferme la balise pour afficher du HTML
// utilisation de la fonction avec des fichiers JPG
$getFile = browse("images/".$id."/", "jpg" or "jpeg" or "png" or "gif");//on demande la lecture du répertoire images avec pour fichiers
foreach ($getFile as $myFile)//foreach : moyen simple de passer en revue un tableau chaque ligne
{echo '<option value='.$myFile.'>'.$myFile."</option>";} //on affiche la ligne dans la liste déroulante
?>
</select>
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 juil. 2007 à 11:17
dans href, si javascript, il faut ajouter return false ou faire
void(fonction) pour éviter que le formulaire ne soit sooumis pas exemple.
void, ça permet de frimer un peu par rapport à return false.
cathy9999
Messages postés63Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention23 mars 2016 3 juil. 2007 à 11:32
J'ai pas trop compris la !
j'ai tout mis pareil et cela ne fonctionne plus ! il marche pour le premier mais pas les autres champs !
et que dois je rajouter si je veux avec les crochets[img], merci
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 juil. 2007 à 12:05
j'ai simplifié un peu...
<script type="text/javascript">
var i=0;
function create_champ()
{ i++;
document.getElementById('leschamps').innerHTML +=
''+
'
';
}
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';
}
</script>
[javascript:void(create_champ()); Ajouter un champ]
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 juil. 2007 à 12:27
>>
avec un souci ( déjà rencontré ! ) le contenu des file s'effacent.
j'ai retrouvé, et .... je n'avais pas résolu à l'époque.
tout ce que j'avais réussi à faire, c'est mettre des champs file cachés,
avec un name="fichier[]" ( pour le php ! ) qu'on montre au fûr et
à mesure des besoins
( ce qui suppose un nombre maxi )
<script type="text/javascript">
var tmp="";
for ( var n=0;n<100;n++ ) // 100 fichiers, c'est pas mal !!!!
{ tmp+= "
" +
"" +
"";
}
document.frm.innerHTML+=tmp;
ajout(-1);
</script>
</form>
il faudrait enlever le dernier bouton "encore" ou récupérer l'erreur
si on tente d'afficher fic100 et btn100
cathy9999
Messages postés63Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention23 mars 2016 3 juil. 2007 à 14:38
Ouahh c'est du serieux! je vais boser dessus, je te remercie. Et juste pr l'histoire de mon menu déroulant, c'est possible de recuperer le nom de l'image?
<select name= "listimages">
<option value ="">Images déja présentes</option>
<?php //ensuite on ferme la balise pour afficher du HTML
// utilisation de la fonction avec des fichiers JPG
$getFile = browse("images/".$id."/", "jpg" or "jpeg" or "png" or "gif");//on demande la lecture du répertoire images avec pour fichiers
foreach ($getFile as $myFile)//foreach : moyen simple de passer en revue un tableau chaque ligne
{echo '<option value='.$myFile.'>'.$myFile."</option>";} //on affiche la ligne dans la liste déroulante
?>
</select>
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 3 juil. 2007 à 15:11
tu veux ajouter le nom de l'image au select ?
var sel= document. name du formulaire .listimages; ou autres !
sel.length++;
sel[sel.length-1].text ="le nom de l'image"; par exemple
<hr />
cathy9999
Messages postés63Date d'inscriptiondimanche 6 janvier 2013StatutMembreDernière intervention23 mars 2016 3 juil. 2007 à 15:21
Non non je veux le mettre principe que l'autre bouton!
un bouton "inserer" le nom de l'image dans la textarea
j'ai déja mes noms présents dans ma liste déroulante, je veux juste les inserer