Я изучаю, как сделать простую разбивку на страницы в html, и я думаю, что у меня что-то не хватает.
Я понял, как сделать LIMIT
используя текущий номер страницы и максимальное количество строк на странице.
Также я нашел несколько руководств о том, как отображать ссылки, которые через css. Например
<ul id="mystyle">
<li class="previous">«Previous</li>
<li class="active">1</li>
<li><a href="?page=2">2</a></li>
<li><a href="?page=3">3</a></li>
<li><a href="?page=4">4</a></li>
<li><a href="?page=5">5</a></li>
<li><a href="?page=6">6</a></li>
<li><a href="?page=7">7</a></li>
<li class="next"><a href="?page=2">Next »</a></li>
</ul>
Но я смущен отображением ссылок, которые пользователь нажимает для выбора среди страниц. Когда пользователь просматривает первую партию строк, он не должен видеть Previous
потому что в этом нет предыдущего (я имею в виду, прежде чем страница 1 не существует).
Таким образом, для последней партии он не должен видеть Next
(по крайней мере, являясь гиперссылкой), так как после последней страницы нет Next
. Но я смущен тем, как это определить.
Единственный способ, о котором я могу думать, это сделать, если я делаю SELECT COUNT(*)
чтобы иметь общий размер результирующего набора. Я пейджинг. Но разве это не превзойдет цель работы пейджинга. Я столкнулся с огромными результатами: SELECT COUNT(*)
занимает значительное количество времени (особенно если у нас есть соединения - я имею в виду, кроме количества данных).
Мне нужна помощь в понимании того, как построить алгоритм и тонкости, которые меня смущают.
Отказ от ответственности, это не видя ваш код на стороне сервера или ничего не зная о вашем приложении, но, возможно, это решение jQuery может вас завести. Опять же, это не так, как я бы с этим справился.
if ($('li.active').text() === '1') {
$('li.previous').hide();
}
if ($('li.next').prev('li').hasClass('active')) {
$('li.next').hide();
}
Это скроет ваши кнопки "Предыдущий/Следующий", когда это необходимо.
$('li.next').prev('li').hasClass('active')
чем идея? Я не понимаю