Здравствуйте, прошу совета и помощи.
У меня есть страница, на которой я вывожу информацию из БД.
И так как информации много, то нужно сделать пагинацию. Чтобы не писать велосипед нашел на хорошем сайте класс пагинации.
тут
И использую его. Появилась проблема:
При загрузке страницы все работает хорошо:
// пагинация
include($dr.'/pagination/pagination.php');
$peger = new DBPaginator($url2, 6); // 6 - колво выводов на странице
$items = $peger->getItems("SELECT * FROM `apple` ORDER BY `id` DESC");
foreach ($items as $item){
...
}
Так пагинация работает отлично. НО.
У меня есть фильтры.
Допустим, на страницу из БД я вывожу все яблоки. Пагинатор на странице выводит по 6 яблок и снизу сама навигация
1,2,3,4,5....
Если я выбираю фильтр (например, красные яблоки), в это время Ajax отправляет запрос в php с указанным значением фильтра (
red, например). Php принимает значение фильтра и делает новую выборку из БД
// пагинация
include($dr.'/pagination/pagination.php');
$peger = new DBPaginator($urlForPagi, 6); // 6 - колво выводов на странице
$items = $peger->getItems("SELECT * FROM `apple ` WHERE `color` = $_POST['color'] ORDER BY id DESC");
и через
echo json_encode отдает результат, а
jquery подгружает на страницу новые яблоки, удаляя предыдущие. Без перезагрузки страницы. А также подгружается новая пагинация (пагинация новой выборки (
красные яблоки)).
Мне непонятно следующее. При выводе всех яблок на странице есть пагинация, например
1,2,3,4,5, и когда выбрали красные яблоки, то старая пагинация удаляется и подгружается новая из выборки
1,2 (по 6 штук красных яблок на странице) - посчитал красные яблоки в БД и понял что пагинация работает в этом смысле правильно. НО.
Когда загрузились только красные яблоки из БД и появилась пагинация красных яблок, стоит нажать, например, на страницу 2, то почему-то выводятся все яблоки, а должны только красные.