Pergunta

Eu tenho um script que chama dinamicamente e exibe imagens de um diretório, o que seria a melhor maneira de paginar isso? Eu gostaria de ser capaz de controlar o número de imagens que são exibidos por página através de uma variável dentro do script. Estou pensando em usar URL varriables (ie - http://domain.com/page.php? page = 1 ), mas tenho certeza de como ir sobre isso.

Obrigado pela ajuda.

Foi útil?

Solução

paginação é o mesmo conceito com ou sem sql. você só precisa de suas variáveis ??básicas, então você pode criar o conteúdo que deseja. aqui vai uma quasi-código:

$itemsPerPage = 5;

$currentPage = isset($_GET['page']) ? $_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
}

espero que ajude você a começar!

Outras dicas

Esta é uma função muitas vezes eu uso para fazer a paginação. Espero que ajude.

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));

Isso irá retornar:

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
)

Com todos os dados que você está então muito bem armados para fazer os links de paginação.

Se você nomear seu imagens 01.jpg, 02.jpg torna mais fácil para paginar. Em seguida, use glob para obter todas as imagens em uma matriz e classificá-lo.

Quando estiver em dúvida uso javascript! Isto pode ajudar muito: http://www.webplicity.net/flexigrid/

Pode ser bom para galery-como aplicativos, embora eu nunca tentou isso:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top