Помогите настроить Bootpag совместно с Ajax сортировкой
Здравствуйте всем на сайте. Пытаюсь сделать сортировку с пагинацией от Bootpag и не получается привязать перелистование страниц к выбранной сортировке....
Вот у меня есть такой скрипт для Bootpag: $(document).ready(function() { $("#results").load("fetch_pages.php"); //начальная страница $(".pagination").bootpag({ total: <?= $pages; ?>, page: 1, maxVisible: 5 }).on("page", function(e, num){ e.preventDefault(); $("#results").prepend('<div class="loading-indication"><img src="/ajax-loader.gif" /> Loading...</div>'); $("#results").load("fetch_pages.php", {'page':num}).hide().fadeIn(1000); }); }); и вот такой скрипт для сортировки: $(document).ready(function () { $(".sort span").click(function () { var id = $(this).attr('id'); $("#fon").css({'display':'block'}); $("#load").fadeIn(500,function () { $.ajax({ url:'/', data:'sort_id='+id, type:'GET', success: function (html) { $("#tovar").html(html).hide().fadeIn(1000); $("#fon").css({'display':'none'}); } }); }); }); }); в php я привязываю подмену sql запроса в зависемости от нажатой ссылки с переменной id... вот такой функцией: function test($link, $id = FALSE) { $item_per_page = 8; if(isset($_POST["page"])){ $page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); if(!is_numeric($page_number)){die('Invalid page number!');} //incase of invalid page number }else{ $page_number = 1; } $position = (($page_number-1) * $item_per_page); $sql = "SELECT * FROM product WHERE brand = 'вентс' LIMIT $position, $item_per_page "; /* функция получения строк по гет */ if($id) { if($id == 'namea') { $position=12; $sql = "SELECT * FROM product WHERE brand = 'вентс' ORDER BY rashod_vozduha ASC LIMIT $position, $item_per_page"; } else if ($id == 'named') { $sql = "SELECT * FROM product WHERE brand = 'вентс' ORDER BY rashod_vozduha DESC LIMIT $position, $item_per_page "; } else if ($id == 'pricea') { $sql = "SELECT * FROM product WHERE brand = 'вентс' ORDER BY cena ASC LIMIT $position, $item_per_page "; } else if ($id == 'priced') { $sql = "SELECT * FROM product WHERE brand = 'вентс' ORDER BY cena DESC LIMIT $position, $item_per_page"; } } $results = mysqli_query($link, $sql); for($i = 0;$i < mysqli_num_rows($results); $i++) { $rr[] = mysqli_fetch_array($results); } if(!$results){ echo "<p>Какая то ошибка с настройками...</p>"; } return $rr; } if($_GET['sort_id']){ $id = strip_tags($_GET['sort_id']); $rr = test($link, $id); foreach($rr as $item) { printf(' <li> <a href = "description-vents&model=%s"; id="title">%s<br/>%s</a> <img style="position: relative;" src="https://ensy.com.ua/product/%s" > <div id="price" >%s грн.</div> </li> ', $item['model'], $item['brand'],$item['model'] ,$item['name'], $item['cena'] ); } exit(); } else { $rr = test($link); } и в конце вывожу результаты фенкции циклом: <ul id="tovar" > <?php foreach ($rr as $item) :?> <li> <a href = "description-vents&model=<?= $item['model'] ?>"; id="title"><?= "<small>" . $item['brand'] . "</small><br/>".$item['model'] ?></a> <img style="position: relative;" src="https://ensy.com.ua/product/<?= $item['name']; ?>" > <div id="price" ><?php echo (int)$item['cena']. " грн. "; ?></div> </li> <?php endforeach; ?> </ul> В результате у меня получается сортировка.... но при перелистовании страниц выборка идет не в соотвествии сортировки, а в том порядке как занесено в БД.... я налаживаю на тестовом сайте и можно посмотреть тут как работает сейчас: http://test.ensy.com.ua/ |
Часовой пояс GMT +3, время: 18:41. |