liste déroulante et php

Eléphanteau du PHP | 39 Messages

04 juin 2008, 15:41

Bonjour à tous,

Je fais une liste déroulante alimentée par le listage en php d'un répertoire. Mais j'ai systématiquement, en debut de cette liste un '.' et '..' .

Quelqu'un sait-il comment les enlever ?

Merci d'avance pour vos réponses :P

Voici mon code:

Code : Tout sélectionner

<form name="mediagenda_archive" action="" method=""> <p><br/> <select name="mediagendas" onchange="window.open(this.options[this.selectedIndex].value,'_blanc')"> <? $dir=opendir("mediagendas/"); while($file=readdir($dir)){ echo "<option value='mediagendas/$file'>$file</option>"; $i++; } closedir($dir); ?> </select> </p> </form>
C'est en forgeant qu'on se forge

Mammouth du PHP | 1353 Messages

04 juin 2008, 16:25

tu peux utiliser un if...
if($file != "." && $file !="..")
{
}...
ce sont les deux répertoires qui sont respectivement le repertoire courant et le précédent.

Sinon si tu ne veux lister que les fichiers tu peux aussi utiliser la fonction !is_dir()...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 39 Messages

04 juin 2008, 16:37

très bonne suggestion puisque ça fonctionne :wink:

voici le code:

Code : Tout sélectionner

<form name="mediagenda_archive" action="" method=""> <p><br/> <select name="mediagendas" onchange="window.open(this.options[this.selectedIndex].value,'_blanc')"> <? $dir=opendir("mediagendas/"); while($file=readdir($dir)){ if (($file=='..') or ($file=='.')){} else { echo "<option value='mediagendas/$file'>$file</option>"; } $i++; } closedir($dir); ?> </select> </p> </form>
Merci à toi guilt92
C'est en forgeant qu'on se forge

Mammouth du PHP | 1353 Messages

04 juin 2008, 16:56

De rien ;)

Par contre si je peux me permettre une suggestion, à l'heure actuelle tu fais :

Code : Tout sélectionner

SI le fichier EGALE . OU le fichier EGALE .. ALORS Ne Rien Faire SINON Faire quelque chose
Je pense que tu peux utiliser une syntaxe plus simple :

Code : Tout sélectionner

SI le fichier EST DIFFERENT de . ET le fichier EST DIFFERENT de .. ALORS Faire quelque chose...
ca supprime une ligne de code et un if() {} c'est pas très propre...
if($file != "." && $file !="..") 
correspond à la 2eme syntaxe :)
Tell me and I forget. Teach me and I remember. Involve me and I learn.