Question

J'ai un script qui appelle et affiche dynamiquement les images d'un répertoire. Quel serait le meilleur moyen de paginer cela? J'aimerais pouvoir contrôler le nombre d'images affichées par page via une variable du script. Je pense utiliser des variables URL (par exemple, http://domain.com/page.php? page = 1 ), mais je ne sais pas comment procéder.

Merci pour l'aide.

Était-ce utile?

La solution

la pagination est le même concept avec ou sans sql. vous avez juste besoin de vos variables de base, vous pouvez alors créer le contenu que vous voulez. voici quelques quasi-code:

$itemsPerPage = 5;

$currentPage = isset(

la pagination est le même concept avec ou sans sql. vous avez juste besoin de vos variables de base, vous pouvez alors créer le contenu que vous voulez. voici quelques quasi-code:

<*>

espérons que cela vous aidera à démarrer!

GET['page']) ?

la pagination est le même concept avec ou sans sql. vous avez juste besoin de vos variables de base, vous pouvez alors créer le contenu que vous voulez. voici quelques quasi-code:

<*>

espérons que cela vous aidera à démarrer!

GET['page'] : 1; $totalItems = getTotalItems(); $totalPages = ceil($totalItems / $itemsPerPage); function getTotalItems() { // since they're images, perhaps we'll scan a directory of images to determine // how many images we have in total } function getItemsFromPage($page, $itemsPerPage) { // function to grab $itemsPerPage based on which $page we're on } function getPager($totalPages, $currentPage) { // build your pager }

espérons que cela vous aidera à démarrer!

Autres conseils

C’est une fonction que j’utilise souvent pour faire de la pagination. J'espère que ça aide.

function paginate($page, $total, $per_page) {
    if(!is_numeric($page)) { $page = 1; }
    if(!is_numeric($per_page)) { $per_page = 10; }
    if($page > ceil($total / $per_page)) $page = 1;
    if($page == "" || $page == 0) { 
        $page = 1;
        $start = 0;
        $end = $per_page;
    } else {
        $start = ($page * $per_page) - ($per_page);
        $end = $per_page;
    }

    $prev_page = "";
    $next_page = "";
    $all_pages = array();
    $selected = "";
    $enabled = false;

    if($total > $per_page) {
        $enabled = true;
        $prev = $page - 1;
        $prev_page = ($prev == 0) ? 0 : $prev;

        $next = $page + 1;
        $total_pages = ceil($total/$per_page);

        $next_page = ($next <= $total_pages) ? $next : 0;

        for($x=1;$x<=$total_pages;$x++) {
            $all_pages[] = $x;
            $selected = ($x == $page) ? $x : $selected; 
        }
    }

    return array(
        "per_page" => $per_page,
        "page" => $page,
        "prev_page" => $prev_page,
        "all_pages" => $all_pages,
        "next_page" => $next_page,
        "selected" => $selected,
        "start" => $start,
        "end" => $end,
        "enabled" => $enabled
    );
}

// ex: we are in page 2, we have 50 items, and we're showing 10 per page
print_r(paginate(2, 50, 10));

Ceci retournera:

Array
(
    [per_page] => 10
    [page] => 2
    [prev_page] => 1
    [all_pages] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
            [4] => 5
        )
    [next_page] => 3
    [selected] => 2
    [start] => 10
    [end] => 10
    [enabled] => 1
)

Avec toutes ces données, vous êtes assez bien armé pour établir les liens de pagination.

Si vous nommez vos images 01.jpg, 02.jpg, cela facilitera la pagination. Ensuite, utilisez glob pour obtenir toutes les images dans un tableau et le trier.

En cas de doute, utilisez javascript! Cela pourrait également aider: http://www.webplicity.net/flexigrid/

Peut-être bon pour les applications de type galerie, bien que je ne l'aie jamais essayé :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top