v2.5.2
Giriş yap

Pagination sorunu.

erkamalper
677 defa görüntülendi

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?

makifgokce
1236 gün önce

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.