петля пагинация Я попытался сделать 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 страниц сразу –