Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1682 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] Lister les fichiers d'un répertoire...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Lister les fichiers d'un répertoire...

n°150128
Toto21
Posté le 03-06-2002 à 16:26:25  profilanswer
 

Salut à tous!
Je voudrais lister l'ensemble des fichiers d'un répertoire (qui ne contient que des images) et ensuite les mettres dans un menu déroulant permettant de la sélectionner...
Comment on fait?
Accessoirement, est-ce qu'il est possible d'afficher l'images lorsque on clique sur son nom dans le menu déroulant? Comment?
Merci à tous
@+ ;-)
Toto21

mood
Publicité
Posté le 03-06-2002 à 16:26:25  profilanswer
 

n°150138
z0rglub
Posté le 03-06-2002 à 16:33:00  profilanswer
 
n°150172
Toto21
Posté le 03-06-2002 à 16:47:47  profilanswer
 

Ooooooooooki merci!!!
Mais sinon, pour afficher l'image quand on clique sur le nom dans la liste déroulante, comment je pourrais faire?

n°150191
z0rglub
Posté le 03-06-2002 à 16:54:21  profilanswer
 

tu récupère le contenu de la selection et tu fais un img src=\"ton_rep/$selection".".jpg\">
enfin un truc du genre...


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°150197
Toto21
Posté le 03-06-2002 à 16:58:02  profilanswer
 

Oui mais pour ça, il faut actualiser la page... moi je voudrais qu'il y ais une partie de ma page qui soit reservée à l'affichage de cette image, que QUAND on clique sur le nom, elle s'affiche...

n°150200
Toto21
Posté le 03-06-2002 à 16:58:40  profilanswer
 

Mais je pense pas que je doive utiliser PHP pour ça... (PHP, c'est côté serveur...) Alors comment...

n°150224
fafe
qui peut le moins peut le plus
Posté le 03-06-2002 à 17:11:13  profilanswer
 

si tu vais qur ca soit en temps réel ta seule solution c'est le javascript...


---------------
boulet officiel:goueg
n°150251
Toto21
Posté le 03-06-2002 à 17:22:25  profilanswer
 

Ouais ok... mais vous auriez pas un tit exemple!  :wahoo:

n°150322
Toto21
Posté le 03-06-2002 à 18:02:31  profilanswer
 

:wahoo:

n°150361
Toto21
Posté le 03-06-2002 à 19:06:52  profilanswer
 

:pt1cable:

mood
Publicité
Posté le 03-06-2002 à 19:06:52  profilanswer
 

n°150368
kayasax
Posté le 03-06-2002 à 19:29:08  profilanswer
 

bon 1 tit exemple "en live" :)  
 
tu as ton image qqpart
<img name="img1" src="...">
 
ton menu
<form name="form1">
<select name="choix" onchange="window.document.img1.src='documen
t.form1.choix.options[selectedIndex].value';
">
 
A tester et verifier les syntaxes


---------------
All we need is a soul revolution
n°150369
youdontcar​e
Posté le 03-06-2002 à 19:34:37  profilanswer
 

(un ptit exemple plus didactique ;) )
 
si tu as une nouvelle question, renomme le titre de ton topic ou crées-en un nouveau.
 
pour charger une image, c'est effectivement + simple par javascript.
 
bon alors ...
 
tu définis une image 'vide' dans ton code en lui donnant un id qui va servir à l'identifier :
 
<img id='viewer'>
 
tu définis ton select et tes images. select réagit à l'événement onchange qui indique qu'on vient de changer la sélection. on va appeler notre méthode qui va updater l'image (méthode qu'on va définir après).
 
<select onchange="updateImage()">
 <option>image1.jpg</option>
 <option>image2.jpg</option>
 <option>image3.jpg</option>
</select>
 
maintenant, la méthode javascript :
 
<script>
  function updateImage()  
  {
    alert('modifié !';);
  }
</script>
 
si tu mets ça dans ton html, tu vas voir que la méthode est appelée à chaque fois que tu cliques sur une nouvelle image. maintenant, on va écrire le code qui va updater l'image. pour ça, il faut :
 
1) récupérer le nom de l'image sélectionnée
2) assigner ce dernier à l'image
 
dans updateImage(), tu a accès à event qui te donne des infos sur l'événement courant, ici onchange. event.srcElement donne l'objet qui a lancé l'événement, ici le menu déroulant. le menu déroulant a deux paramètres intéressants : selectedIndex, qui donne le numéro de la sélection, et options, un tableau qui donne toutes les options du menu. chaque option contient une variable text qui donne son contenu (ici 'image1.jpg' par exemple).
 
// on récupère le menu
var n = event.srcElement;
// on récupère l'index de l'option sélectionné
var index = n.selectedIndex;
// on récupère l'option
var option = n.options[index];
 
// affiche le nom de l'image sélectionée
alert(option.text);
 
on a maintenant le nom de l'image, il suffit de l'assigner à notre image 'viewer'. document.getElementById(idDeLaBalise) permet de récupérer une balise. donc document.getElementById('viewer';) récupère notre image, qui a une propriété src, le nom de l'image qu'elle affiche. il suffit de mettre le nom qu'on a récupéré plus haut dans cette variable, et hop !
 
document.getElementById('viewer';).src = option.text
 
donc au final :
 
function updateImage()
{
  // on récupère le menu
  var n = event.srcElement;
  // on récupère l'index de l'option sélectionné
  var index = n.selectedIndex;
  // on récupère l'option
  var option = n.options[index];
  // on update l'image
  document.getElementById('viewer';).src = option.text;
}

n°150372
kayasax
Posté le 03-06-2002 à 19:45:07  profilanswer
 

muhmm il est bon cuila  :wahoo: mangez en !! :lol:  
1 truc que je pige pas ds ta derniere ligne :
document.getElementById('viewer';).src = option.text;
il sort d'ou le .text ?
ce serait pas .value plutot ??
 

youdontcare a écrit a écrit :

(un ptit exemple plus didactique ;) )
 
si tu as une nouvelle question, renomme le titre de ton topic ou crées-en un nouveau.
 
pour charger une image, c'est effectivement + simple par javascript.
 
bon alors ...
 
tu définis une image 'vide' dans ton code en lui donnant un id qui va servir à l'identifier :
 
<img id='viewer'>
 
tu définis ton select et tes images. select réagit à l'événement onchange qui indique qu'on vient de changer la sélection. on va appeler notre méthode qui va updater l'image (méthode qu'on va définir après).
 
<select onchange="updateImage()">
 <option>image1.jpg</option>
 <option>image2.jpg</option>
 <option>image3.jpg</option>
</select>
 
maintenant, la méthode javascript :
 
<script>
  function updateImage()  
  {
    alert('modifié !';);
  }
</script>
 
si tu mets ça dans ton html, tu vas voir que la méthode est appelée à chaque fois que tu cliques sur une nouvelle image. maintenant, on va écrire le code qui va updater l'image. pour ça, il faut :
 
1) récupérer le nom de l'image sélectionnée
2) assigner ce dernier à l'image
 
dans updateImage(), tu a accès à event qui te donne des infos sur l'événement courant, ici onchange. event.srcElement donne l'objet qui a lancé l'événement, ici le menu déroulant. le menu déroulant a deux paramètres intéressants : selectedIndex, qui donne le numéro de la sélection, et options, un tableau qui donne toutes les options du menu. chaque option contient une variable text qui donne son contenu (ici 'image1.jpg' par exemple).
 
// on récupère le menu
var n = event.srcElement;
// on récupère l'index de l'option sélectionné
var index = n.selectedIndex;
// on récupère l'option
var option = n.options[index];
 
// affiche le nom de l'image sélectionée
alert(option.text);
 
on a maintenant le nom de l'image, il suffit de l'assigner à notre image 'viewer'. document.getElementById(idDeLaBalise) permet de récupérer une balise. donc document.getElementById('viewer';) récupère notre image, qui a une propriété src, le nom de l'image qu'elle affiche. il suffit de mettre le nom qu'on a récupéré plus haut dans cette variable, et hop !
 
document.getElementById('viewer';).src = option.text
 
donc au final :
 
function updateImage()
{
  // on récupère le menu
  var n = event.srcElement;
  // on récupère l'index de l'option sélectionné
  var index = n.selectedIndex;
  // on récupère l'option
  var option = n.options[index];
  // on update l'image
  document.getElementById('viewer';).src = option.text;
}  




Message édité par kayasax le 06-03-2002 à 19:46:41

---------------
All we need is a soul revolution
n°150375
youdontcar​e
Posté le 03-06-2002 à 19:50:48  profilanswer
 

kayasax a écrit a écrit :

muhmm il est bon cuila  :wahoo: mangez en !! :lol:  
1 truc que je pige pas ds ta derniere ligne :
document.getElementById('viewer';).src = option.text;
il sort d'ou le .text ?
ce serait pas .value plutot ??


:D
 
quand tu as une option d'un select :
 
<option value="valeur">textedeloption</option>
 
option.value renvoie "valeur"
option.text renvoie "textedeloption"
 
donc l'utilisation dépend de comment il utilise son menu. a priori ce sont des noms de fichiers accessibles par option.text ...

n°150401
kayasax
Posté le 03-06-2002 à 20:41:15  profilanswer
 

ah ben ca alors j'en ai appris des trucs en js sur 1 seul topic  ;)  
 :jap: respect !


---------------
All we need is a soul revolution
n°150417
youdontcar​e
Posté le 03-06-2002 à 21:23:15  profilanswer
 

une version plus courte inspirée par celle de kayasax :
 
<select onchange="document.getElementById('img1';).src = this.options[this.selectedIndex].text;">  
 
et hop :)

n°151209
Toto21
Posté le 04-06-2002 à 18:50:33  profilanswer
 

Ouaou!!!
Ca c'est du script bien expliqué!!
Encore une chose, mes images ne sont pas ds le même répertoire que le fichier html...
Comment je fais pour remonter et indiquer le chemin? Ou est ce que je dois le rajouter?
Encore merci!
 :hello:

n°151211
youdontcar​e
Posté le 04-06-2002 à 18:54:02  profilanswer
 

this.options[this.selectedIndex].text te donne le nom de l'image. si tes images sont dans un sous-répertoire images, le chemin est  
 
'images/' + this.options[this.selectedIndex].text
 
si tes images sont dans un répertoire images parent à celui de l'html, le chemin est
 
'../images/' + this.options[this.selectedIndex].text
 
etc.

n°157203
jultey
Posté le 12-06-2002 à 00:37:41  profilanswer
 

J'ai un repertoire de gif que je liste pour les faire apparaitre, mais j'aimerais les afficher par order alphabétique, c possible ?
 
 

//lecture de tous les fichiers gif du repertoire
//::::::::::::::::::::::::::::::::::::::::::::::
        $handle=opendir('.');
 while($file = readdir($handle))
        {
        // une ligne de chaque couleur
   if($coul_ligne == $coul_ligne1)
                        $coul_ligne = $coul_ligne2 ;
                 else
                        $coul_ligne = $coul_ligne1 ;
 
        //tant qu'on a des gif
         if ($file != "." && $file != ".." && ereg(".gif",$file))
                {
          // On écrit le lien du smiley
                        echo " <tr bgcolor=\"".$coul_ligne."\"> " ;
                  echo " <td align=\"center\">" ;
                        echo " <img src=\"".$file."\" " ;
                  echo " alt=\"".$file."\" " ;
                  echo " name=\"".$file."\" >" ;
                  echo "</td><td> ".$file."</td></tr>" ;
                 }
 }
   closedir($handle);
//::::::::::::::::::::::::::::::::::::::::::::::


 
la ils s'affichent apparement dans un ordre bizarre mais pas aléatoire ...


Message édité par jultey le 06-12-2002 à 00:38:37
n°157205
youdontcar​e
Posté le 12-06-2002 à 00:45:54  profilanswer
 

jultey >
 

cherche sort() dans la page.


Message édité par youdontcare le 06-12-2002 à 00:46:18
n°157207
jultey
Posté le 12-06-2002 à 01:05:29  profilanswer
 

J'en suis la :
 


//lecture de tous les fichiers gif du repertoire
//::::::::::::::::::::::::::::::::::::::::::::::
        $handle=opendir('.');
 while($file = readdir($handle))
        {
        // une ligne de chaque couleur
   if($coul_ligne == $coul_ligne1)
                        $coul_ligne = $coul_ligne2 ;
                 else
                        $coul_ligne = $coul_ligne1 ;
 
                 $f=array();
                 $nf=0;
 
        //tant qu'on a des gif
         if ($file != "." && $file != ".." && ereg(".gif",$file))
                {
                //stockage dans un tableau
                 $f[$nf++]=$file;
                }
 
        //on trie le tableau
                sort($f);
 
                 for ($i=0;$i<count($f);$i++)
                 {
                  // On écrit le lien du smiley
                        echo " <tr bgcolor=\"".$coul_ligne."\"> " ;
                  echo " <td align=\"center\">" ;
                        echo " <img src=\"".$f[$i]."\" " ;
                  echo " alt=\"".$f[$i]."\" " ;
                  echo " name=\"".$f[$i]."\" >" ;
                  echo "</td><td> ".$f[$i]."</td></tr>" ;
                 }
 }
   closedir($handle);


 
ca fait toujours la liste mais pas encore trié par ordre alfabét.
Je continue a chercher dans la page...

n°157208
youdontcar​e
Posté le 12-06-2002 à 01:13:31  profilanswer
 

non. tu boucles avec readdir() pour ranger tes fichiers dans un tableau, tu tries le tableau, puis tu boucles sur le tableau pour l'afficher.

n°157212
jultey
Posté le 12-06-2002 à 01:23:24  profilanswer
 

youdontcare a écrit a écrit :

non. tu boucles avec readdir() pour ranger tes fichiers dans un tableau, tu tries le tableau, puis tu boucles sur le tableau pour l'afficher.  




 
 
Il me semble que c'est ce que je fais...
Je viens de changer une accolade et maintenant ca marche plus du tout...
 
J'essaie de mettre de la couleur, je sais pas ce que ca va donner :D  
 
 


//lecture de tous les fichiers gif du repertoire
//::::::::::::::::::::::::::::::::::::::::::::::
        $handle=opendir('.');
[#0ef000]//boucle avec readdir
 while($file = readdir($handle))
        {
        // une ligne de chaque couleur
   if($coul_ligne == $coul_ligne1)
                        $coul_ligne = $coul_ligne2 ;
                 else
                        $coul_ligne = $coul_ligne1 ;
 
                 $f=array();
                 $nf=0;
 
        //tant qu'on a des gif
         if ($file != "." && $file != ".." && ereg(".gif",$file))
                {
                //stockage dans un tableau
                 $f[$nf++]=$file;
                }
        [/#0ef000][#e21c00]}[/#e21c00]
 
        [#0046b8]//on trie le tableau
                sort($f);[/#0046b8]
 
[#00009b]//boucle sur le tableau
                 for ($i=0;$i<count($f);$i++)
                 {
                  // On écrit le lien du smiley
                        echo " <tr bgcolor=\"".$coul_ligne."\"> " ;
                  echo " <td align=\"center\">" ;
                        echo " <img src=\"".$f[$i]."\" " ;
                  echo " alt=\"".$f[$i]."\" " ;
                  echo " name=\"".$f[$i]."\" >" ;
                  echo "</td><td> ".$f[$i]."</td></tr>" ;
                 }[/#00009b]
   closedir($handle);

n°157215
youdontcar​e
Posté le 12-06-2002 à 01:27:00  profilanswer
 

ton accolade est bonne, ton indentation est étrange. et tu créés le tableau à chaque passage dans la boucle ... !
 
ça doit ressembler à :
 
$f = array();
while ($file = readdir())
{
 $f[] = $file;
}
sort($f);
$i=0;
while ($i < sizeof($f))
{
  echo $f[$i];
  $i++;
}

n°157216
jultey
Posté le 12-06-2002 à 01:36:28  profilanswer
 

//lecture de tous les fichiers gif du repertoire
//::::::::::::::::::::::::::::::::::::::::::::::
  $handle=opendir('.');
 
[#f00e00]//creation du tableau
   $f=array();
   $nf=0;[/#f00e00]
 
   [#718d00]while($file = readdir($handle))
   {
   //tant qu'on a des gif
      if ($file != "." && $file != ".." && ereg(".gif",$file))
      {
      //stockage dans un tableau
              $f[$nf++]=$file;
       }
    }[/#718d00]
 
    [#00aa55]//on trie le tableau
       sort($f);[/#00aa55]
[#000063]
     for ($i=0;$i<count($f);$i++)
     {
        // une ligne de chaque couleur
     if($coul_ligne == $coul_ligne1)
                   $coul_ligne = $coul_ligne2 ;
             else
                   $coul_ligne = $coul_ligne1 ;
 
       // On écrit le lien du smiley
           echo " <tr bgcolor=\"".$coul_ligne."\"> " ;
           echo " <td align=\"center\">" ;
           echo " <img src=\"".$f[$i]."\" " ;
           echo " alt=\"".$f[$i]."\" " ;
           echo " name=\"".$f[$i]."\" >" ;
          echo "</td><td> ".$f[$i]."</td></tr>" ;
     }
  [/#000063] closedir($handle);
//::::::::::::::::::::::::::::::::::::::::::::::


 
 
Voila, maintenant ca marche, merci encore... Je te dédie le 3 eme de cette page http://www.jultey.firstream.net/jultey/smiley/
(trié par ordre alphabétique bien sur ! ) :jap:


Message édité par jultey le 06-12-2002 à 01:37:32
n°157217
youdontcar​e
Posté le 12-06-2002 à 01:41:30  profilanswer
 

http://www.jultey.firstream.net/jultey/smiley/bien_vu.gif :D

n°157218
jultey
Posté le 12-06-2002 à 01:44:05  profilanswer
 

http://www.jultey.firstream.net/jultey/smiley/vomi.gif
 
c mon préféré celui la... mais rien avoir avec toi !!
 
Bon, allez, au dodo !
A+


Message édité par jultey le 06-12-2002 à 01:44:54
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] Lister les fichiers d'un répertoire...

 

Sujets relatifs
pb de fichiers[access97-vba][PHP] prob de permission sous dossier
Help Work Shop: Pb avec les fichiers d'aide multiple[PHP] c koi la notation === ???
[PHP] URL encodées en base64, récupérer les variables ?[JS][PHP] Mise à jour de la page seon le select du formulaire
Comment récupérer les données d'une base Access, avec PHP ?[PHP] Affichage image prise aléatoirement dans une table...
[PHP / JS / MYSQL ] Mon forum version 0.28b ON LINE ! [UPDATE 0.8b][Script PHP] Lister les fichiers du répertoire ?
Plus de sujets relatifs à : [PHP] Lister les fichiers d'un répertoire...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR