IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ecrire dans une div


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Ecrire dans une div
    Bonjour,

    Je souhaiterais récupérer les noms des fichiers d'input file et les écrire dans une div.
    Pour l'instant je procède comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <script type="text/javascript">
    function affCache(idpr)
    {
    	var pr = document.getElementById(idpr);
     
    	if (pr.style.display == "") {
    		pr.style.display = "none";
    	} else {
    		pr.style.display = "";
    	}
    }
     
    function f1()
    {
    	document.getElementById('fichiers').innerHTML = document.getElementById('fichier').value; 
    }
     
     
     
    </script>
    et mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
          <form class="form"  name"form" method="post" enctype="multipart/form-data" action="upload.php">
    			<h2>Ajouter un PDF</h2>
     
    			<div id="fichiers">
                    Aucun fichier à uploader
                </div>
     
    			<div>
    				<label for="pass">Mot de passe</label><input type="password" name="pass" />
    			</div>
    			<div id="fichier1">
    				<label for="fichier">Fichier 1</label><input type="file" name="fichier" id="fichier" onChange="affCache('fichier2'); f1();" />
    			</div> 	
    			<div id="fichier2" style="display:none">
    				<label for="fichier2">Fichier 2</label><input type="file" name="fichier2" id="fichier2" onChange="affCache('fichier3'); />
    			</div> 
    			<div id="fichier3" style="display:none">
    				<label for="fichier3">Fichier 3 </label><input type="file" name="fichier3" id="fichier3"  />
    			</div> 
     
    			<div class="button">
    				<input type="hidden" name="MAX_FILE_SIZE" value="52428800" />
    				<button type="submit" name="upload">Soumettre</button>
    				<button type="reset">Annuler</button>
    			</div>
    	   </form>
    Pour le moment j'affiche : C:\fakepath\monFichier.pdf
    1) J'aimerai afficher seulement le nom du fichier.
    2) Je n'arrive pas à ajouter à la suite les noms des fichiers suivant. Il marque undefined... dans ma div malgrés toutes mes tentatives.

    Merci de bien vouloir m'aider.

    Cordialement,

    Sasuke.

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Pour cette partie d'abord :
    Citation Envoyé par sasuke001 Voir le message
    Pour le moment j'affiche : C:\fakepath\monFichier.pdf
    1) J'aimerai afficher seulement le nom du fichier.
    Ca c'est assez basique comme traitement de chaine de caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var chemin = "C:\\fakepath\\monFichier.pdf";// j'ai doublé les quotes dans l'exemple car elles sont interprétées une première fois ^^
    alert(chemin.lastIndexOf("\\"));// lastIndexOf renvoie la position de la dernière occurrence d'une sous-chaine
    // DONC
    var fichier = chemin.substr(chemin.lastIndexOf("\\") + 1);// avec 1 seul param, substr renvoie une sous-chaine débutant à la position indiquée (jusqu'à la fin)
    alert(fichier);// affiche "monFichier.pdf"
    Mais comme pour la plupart des manip de chaines, il y a d'autres manieres de procéder ^^

    Citation Envoyé par sasuke001 Voir le message
    2) Je n'arrive pas à ajouter à la suite les noms des fichiers suivant. Il marque undefined... dans ma div malgrés toutes mes tentatives.
    >>> montre-nous le code correspondant à ta meilleure tentative, parce que là, l'extrait, il ne gère que l'affichage du premier fichier.

    A vue de nez, je te conseillerais de partir sur l'idée de reconstruire la liste à chaque onChange, par exemple avec ta fonction f1 modifiée de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function f1() {// pas facile de trouver un nom moins bien choisi ^^
        var liste = [];
        // ligne suivante on récupère une collection des inputs (tous confondus) du form "form" (encore un nom... à changer ^^)
        var inputs = document.forms["form"].getElementsByTagName("INPUT");
        for (var i = 0, iMax = inputs.length; i < iMax; ++i) {
            var inp = inputs[i];
            if ((inp.type == "file") && (inp.value)) {// on ne prend que les input file ayant une valeur saisie
                liste.push(inp.substr(inp.lastIndexOf("\\") + 1));//le petit "épluchage" vu plus haut
            }
        }
        // et enfin on raccomode le tout en liste avec des <br> par exemple
        document.getElementById('fichiers').innerHTML = liste.join("<br/>");
    }
    ... je n'ai pas testé en détail, c'est pour te donner une piste ^^

Discussions similaires

  1. ecrire dans une balise div deja place
    Par cortex007 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/11/2006, 11h12
  2. barre de defilement dans une div
    Par barbarius dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/06/2005, 14h19
  3. autoscroll dans une div
    Par c@rtm@n dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/06/2005, 22h52
  4. Réponses: 4
    Dernier message: 15/04/2005, 15h25
  5. Ecrire dans un DIV.
    Par cocula dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/02/2005, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo