PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-09-2012 18:28:20

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Création d'une liste déroulante à partir du FTP

Bonjour à tous,

Je souhaiterai en fin de compte créer, automatiquement, une liste déroulante contenant a l'intérieur le nom de chaque dossier présent dans un dossier sur mon FTP (nommé "galeries").
L’étiquette et la valeur auront la même "valeur". A savoir que j'ai "n" dossiers, et que demain je peux en avoir n+1 voir n+100...

Aprés quelques recherches, j'ai réussi a faire le code suivant :


<label>
<select name="Albums_names" id="Albums_names">
   
    <?php
    $dirname = 'galeries';
    $dir = opendir($dirname);
   
    while($file = readdir($dir)) {
        if($file != '.' && $file != '..' && !is_dir($dirname.$file))
        {
      echo "<option value=$file>$file</option>";
        }
    }
   
    closedir($dir);
    ?>
    </select>
</label>
 

Le soucis est qu'il m'affiche tout ce qui est présent. Et moi, je n'aimerai que les dossiers sad.

Quelqu'un pourrait-il m'aider SVP ?

Merci d'avance,
Fab.

Dernière modification par Fabdu57 (28-09-2012 18:46:26)

Hors ligne

#2 28-09-2012 19:08:34

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'une liste déroulante à partir du FTP

Re le forum,

Aprés avoir cherché un peux plus profondément sur internet, j'ai réussi a aboutir dans mon code :


<label>
<select name="Albums_names" id="Albums_names">
  <?php
    $chemin = 'galeries';
    $handle = opendir($chemin);
     
    while($Fichier = readdir($handle))
      {
          if ($Fichier != ".." && $Fichier != "." && is_dir($chemin.'/' .$Fichier))
      echo "<option value=$Fichier>$Fichier</option>";
      }
    closedir($handle);
    ?>
    </select>
</label>
   

Fab

Hors ligne

#3 28-09-2012 21:07:36

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'une liste déroulante à partir du FTP

Bonsoir à nouveau,
Un petit soucis par contre... Il classe les fichier par date de "création", et non alphabétique.

Une parade par hasards ?

MErci,
Fab.

Hors ligne

#4 28-09-2012 22:00:17

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'une liste déroulante à partir du FTP

Saluton,
Avant ta boucle while tu déclares un array adirs=array(); puis tu remplaces echo par un adirs[]=sprintf("<option value=%s>%s</option>",$Fichier,$Fichier);
au sortir de la boucle tu fais un classement de l'array avec asort(adirs), puis tu fais ton echo implode(adirs);


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 28-09-2012 22:06:35

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'une liste déroulante à partir du FTP

Je pense pas avoir tout compris lol...

Si j'ai bien compris, le code résultant donne ceci :

<label>
<select name="Albums_names" id="Albums_names">
  <?php
        $chemin = 'galeries';
        $handle = opendir($chemin);
        adirs=array();
   
        while($Fichier = readdir($handle))
          {
      if ($Fichier != ".." && $Fichier != "." && is_dir($chemin.'/' .$Fichier))
      adirs[]=sprintf("<option value=\"%s\">%s</option>",$Fichier,$Fichier);
      asort(adirs);
      implode(adirs);
          }
        closedir($handle);
    ?>
</select>
</label>

ce qui conduis à l'erreur " Parse error: syntax error, unexpected '=' in /homepages/41/d418170838/htdocs/E_liste.php on line 6"

Hors ligne

#6 29-09-2012 06:02:55

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'une liste déroulante à partir du FTP

Plutôt comme ça

<label>Albums</label>
<select name="Albums_names" id="Albums_names">
  <?php
        $chemin = 'galeries';
        $handle = opendir($chemin);
        $adirs=array();
        while($Fichier = readdir($handle))
             {
    if ($Fichier != ".." && $Fichier != "." && is_dir($chemin.'/' .$Fichier))
    $adirs[]=sprintf("<option value=\"%s\">%s</option>",$Fichier,$Fichier);
             }
        closedir($handle);
        asort($adirs);
        echo implode($adirs);
        unset($adirs);
    ?>
</select>

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 29-09-2012 10:11:36

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'une liste déroulante à partir du FTP

Parse error: syntax error, unexpected '=' in /homepages/41/d418170838/htdocs/E_liste.php on line 6

sad

Hors ligne

#8 29-09-2012 11:27:01

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Création d'une liste déroulante à partir du FTP

Désolé, il faut préfixer le nom de variable adirs avec $, évidemment.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#9 29-09-2012 11:32:18

Fabdu57
Membre
Inscription : 10-06-2012
Messages : 36

Re : Création d'une liste déroulante à partir du FTP

Impec ca fonctionne. Voici le code final quelque fois qu'il puisse servir a quelqu'un d'autre un jours :

<label>Albums</label>
<select name="Albums_names" id="Albums_names">
  <?php
        $chemin = 'galeries';
        $handle = opendir($chemin);
        $adirs=array();
        while($Fichier = readdir($handle))
             {
        if ($Fichier != ".." && $Fichier != "." && is_dir($chemin.'/' .$Fichier))
        $adirs[]=sprintf("<option value=\"%s\">%s</option>",$Fichier,$Fichier);
             }
        closedir($handle);
        asort($adirs);
        echo implode($adirs);
        unset($adirs);
    ?>
</select>

Merci à toi Maljuna Kris pour cette aide.
Au plaisir de retravailler avec toi,
Fab.

Hors ligne

Pied de page des forums