Pagination sorunu.
Sayfama bir pagination eklemek istiyorum. Ve aklımdaki pagination şu şekilde;
- Her sayfaya bir ID verilir.
- Sayfa her değiştirildiğinde bir sonraki ID'li sayfanın URL'ine yönlendirilir. (https://blabla.com/page/3 gibi)
Ancak bunu yaptığım zaman, searchbar'ım sadece bulunulan sayfada arama gerçekleştircek. Ben ise tüm verilerde arama gerçekleştirmesini istiyorum.
Searchbar kodlarım;
$(document).ready(() => {
$("#search").keyup(function() {
const value = $(this).val().toLowerCase();
$(".column").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
});
});
});
Önerileriniz nelerdir?
her sayfaya id vererek bu işlemi yaptırmak bence mantıksız olur.
sonuçta sayfalardaki veriler dinamik olacağı için.
function pagination($current_page, $total_pages, $page_url)
{
$pagination = '';
if($total_pages > 0 && $total_pages != 1 && $current_page <= $total_pages){
$pagination .= '<ul>';
$right_links = $current_page + 3;
$previous = $current_page - 1;
$next = $current_page + 1;
$first_link = true;
if($current_page > 1){
$previous_link = ($previous==0)?1:$previous;
$pagination .= '<li><a href="'.$page_url.'/1">İlk</a></li>';
$pagination .= '<li><a href="'.$page_url.'/'.$previous_link.'">Önceki</a></li>';
for($i = ($current_page-2); $i < $current_page; $i++){
if($i > 0){
$pagination .= '<li><a href="'.$page_url.'/'.$i.'">'.$i.'</a></li>';
}
}
$first_link = false;
}
if($first_link){
$pagination .= '<li class="active">'.$current_page.'</li>';
}elseif($current_page == $total_pages){
$pagination .= '<li class="active">'.$current_page.'</li>';
}else{ //regular current link
$pagination .= '<li class="active">'.$current_page.'</li>';
}
for($i = $current_page+1; $i < $right_links ; $i++){
if($i<=$total_pages){
$pagination .= '<li><a href="'.$page_url.'/'.$i.'">'.$i.'</a></li>';
}
}
if($current_page < $total_pages){
$next_link = ($next > $total_pages)? $total_pages : $next;
$pagination .= '<li><a href="'.$page_url.'/'.$next_link.'">İleri</a></li>';
$pagination .= '<li><a href="'.$page_url.'/'.$total_pages.'">Son</a></li>';
}
$pagination .= '</ul>';
}
return $pagination;
}
$pageLength = 10; // sayfa başına gösterilecek veri miktarı
$data = []; // DB den gelen veri
$page = 1; // urlden gelen parametre
$pages = ceil($data/$pageLength);
if($page < 1) {
$page = 1;
}
if($page > $pages){
$page = $pages;
}
echo pagination($page, $pages, "http://localhost");
Veya https://datatables.net/ bunuda kullanabilirsin.