質問
ディレクトリから画像を動的に呼び出して表示するスクリプトがありますが、これをページ分割する最良の方法は何でしょうか?スクリプト内の変数を使用して、ページごとに表示される画像の数を制御できるようにしたいと思います。 URL変数の使用を考えています(つまり- http://domain.com/page.php? page = 1 )。ただし、これについての方法は不明です。
助けてくれてありがとう。
解決
ページネーションは、SQLの有無にかかわらず同じ概念です。基本的な変数だけが必要な場合は、必要なコンテンツを作成できます。準コードを次に示します。
$itemsPerPage = 5;
$currentPage = isset(ページネーションは、SQLの有無にかかわらず同じ概念です。基本的な変数だけが必要な場合は、必要なコンテンツを作成できます。準コードを次に示します。
<*>
開始に役立つことを願っています!
GET['page']) ? ページネーションは、SQLの有無にかかわらず同じ概念です。基本的な変数だけが必要な場合は、必要なコンテンツを作成できます。準コードを次に示します。
<*>
開始に役立つことを願っています!
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
}
開始に役立つことを願っています!
他のヒント
これは、ページネーションを行うためによく使用する関数です。役に立てば幸いです。
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));
これは以下を返します:
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
)
すべてのデータを使用して、ページネーションリンクを作成するための十分な準備を整えます。
画像に01.jpg、02.jpgという名前を付けると、ページ分割が簡単になります。次に、globを使用してすべての画像を配列に入れて並べ替えます。
疑わしいときはJavaScriptを使用してください!これも役立つ場合があります: http://www.webplicity.net/flexigrid/
ギャラリーのようなアプリには向いているかもしれませんが、私は試したことはありませんが:)