[PHP] boucle while et opendir
Résolu
juloo6578
Messages postés
57
Statut
Membre
-
the_animal Messages postés 74 Statut Membre -
the_animal Messages postés 74 Statut Membre -
Bonjour,
Je souhaite ajouter un bouton 'page suivante' pour éviter que les pages soient trop lourdes.
J'affiche le résultat de la fonction opendir et readdir grâce à la boucle while :
J'aimerais ajouter le bouton page suivante pour n'afficher que 20 images à la fois.
Merci.
Je souhaite ajouter un bouton 'page suivante' pour éviter que les pages soient trop lourdes.
J'affiche le résultat de la fonction opendir et readdir grâce à la boucle while :
$dossier=opendir("dossier/");
while ($fichier = readdir($dossier)) {
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php') {
echo '<img src="dossier/'.$fichier.'" title="image" />';
}
}
J'aimerais ajouter le bouton page suivante pour n'afficher que 20 images à la fois.
Merci.
8 réponses
-
Bonsoir,
ça s'appel une pagination et c'est plutôt complexe à réaliser et encore plus à poster...
Voci un lien qui je l'espère ne sera pas supprimé et qui correspond à votre attente http://forum.creer-un-site.fr/creer-un-site-587-probleme-pagination-galerie#p4713
Dans le code, il faut supprimer la première variable$adresse_normal = "galerie-images/normal/";
puis ensuite remplacer $adresse-normal par $adresse_miniature dans la suite du code. -
Bonjour,
voici un petit code que j'ai modifié depuis votre code, peut être la solution à votre problème:<?php $dossier=opendir("dossier/"); $file_list= scandir("dossier/"); //définition du nombre d'images à afficher par page $nb_affichage=20; //filtrer les fichiers à afficher $file_list=array_filter($file_list, function ($element) { return ($element != '.' && $element!='..' && $element!='index.php'); } ); //page suivante appelé par la methode GET ex: ?page=1 $page =(isset($_GET['page'])) ? $_GET['page'] : 0; $file_list=array_chunk($file_list,$nb_affichage); var_dump($file_list); for($i = 0; $i<$nb_affichage;$i++) { if(isset($file_list[$page][$i])) echo '<img width="100" height="100" src="dossier/'.$file_list[$page][$i].'" title="image" />'; } ?>
pour appeler la page suivante, on ajoute un paramètre get , page=1 ou 2 ou ...
Bonne continuation.
-
Merci beaucoup pour votre soutient !!
Je n'ais pas très bien compris cette ligne :
$file_list = array_filter($file_list, function ($element) {
return ($element != '.' && $element!='..' && $element!='index.php');
});
Apparemment vous créez une fonction ?
En tout cas elle engendre une erreur... -
array_filter sert à filtrer l'array précedemment créé, j'ai enlevé dans cet array les repertoires "." et ".." ainsi que l'index.php.
mets cela en une seule ligne.
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
-
Parse error: syntax error, unexpected T_FUNCTION in /data/filer-6/web/web507/htdocs/upload/gallerie.php on line 11
-
Apparemment ton version de php ne permet pas d'utiliser ce code, utilises ceci:
<?php $dossier=opendir("dossier/"); $file_list= scandir("dossier/"); //définition du nombre d'images à afficher par page $nb_affichage=5; //filtrer les fichiers à afficher function callback($element) { return ($element != '.' && $element!='..' && $element!='index.php'); } $file_list=array_filter($file_list, "callback"); //page suivante appelé par la methode GET ex: ?page=1 $page =(isset($_GET['page'])) ? $_GET['page'] : 0; $file_list=array_chunk($file_list,$nb_affichage); for($i = 0; $i<$nb_affichage;$i++) { if(isset($file_list[$page][$i])) echo '<img width="100" height="100" src="dossier/'.$file_list[$page][$i].'" title="image" />'; } ?>