我試圖使一個PHP分頁這樣的:PHP分頁循環問題
$count = $this->dataBaseFunctions->countItems();
$resultperPage = 10;
$offset = 0;
$adjacents = 3;
$totalPages = ceil(intval($count)/$resultperPage);
if (isset($_GET['offset'])) {
$offset = trim($_GET['offset']);
}
$j = $adjacents;
while ($j > 0) {
if (($offset/10) - 1 > 0) {
echo '<a href="anypage/' . ($offset - 10 - ($j * 10)) . '" class="pagelink">' . ($offset - 10 - ($j * 10)) . '</a> ';
}
$j--;
}
/*for ($j = $adjacents; $j > 0; $j--) {
echo '<a href="anypage/' . ($offset - 10 - ($j * 10)) . '" class="pagelink">' . ($offset - 10 - ($j * 10)) . '</a> ';
}*/
echo '<a href="anypage/' . ($offset - 10) . '" class="pagelink current">[' . ($offset - 10) . '] </a> ';
for ($j = 1; $j < ($adjacents + 1); $j++) {
echo '<a href="anypage/' . ($offset - 10 + ($j * 10)) . '" class="pagelink">' . ($offset - 10 + ($j * 10)) . '</a> ';
}
結果應該是這樣的(括號=當前clicket頁): [0] 1 2 3
當我點擊「3」應該看起來像這樣(到目前爲止): 0 1 2 [3] 4 5 6
但是當我點擊「1」時,結果如下所示: -2 -1 0 [ 1] 2 3 4
「0」不是問題,我只是'迴應'它進行調試。 我知道我不設置正確的條件,不顯示低於1的頁面,但我不知道如何使它正確。好像我的眼睛上有西紅柿......回聲僅用於測試 - 稍後我將整個分頁鏈接保存到一個變量中,以將其分配到頁面的底部。它有一些你在這裏看到的調試代碼,但它顯示了我試圖做的事情。請讓我知道,如果我可以改善這個問題,或者是否有缺失的信息:「爲什麼你($ offset/10)-1> 0」;-)
後來我需要做同樣的東西在JS中,但我想我可以管理,當我知道我在PHP版本中做了什麼錯誤。
*也許這是一個壞主意我想在那裏做什麼?
什麼是'$ adjacents'好? – Reto
$ adjacents是當前頁面左側和右側的計數。所以如果我點擊例如「5」,左邊顯示2 3 4,右邊6 7 8像2 3 4 [5] 6 7 8. 1和9沒有顯示。 $ adjacents = 3,一次顯示7頁的範圍 –