mam problem z wyświetlaniem stronicowania i przycisków next i prev.
Mam pętle która zwraca mi linki wszystkich wpisów w bazie (danej kategorii).
<?php $i = 1; foreach ($get_realizacje->result() as $val) { ?> <?php $i++; } ?>
$id_ realizacji - to id konkretnie otwartej realizacji
$val->id_realizacji - to id wszystkich realizacji, (jedno id dla danego llinku

Zawsze mam linki do wszystkich realizacji, chciałbym do nich dorobić przyciski wstecz i dalej (które, będą pokazywać wcześniejszą lub następną realizacją -1 lub +1 ).
Chciałbym także jeśli będzie wybrana realizacja ostatnia z widocznego przedziału, to linki zaczną się od np. 5 pozycji wcześniejszych i skończą na 5 później.
Cały czas mają być wyświetlane przyciski wstecz i dalej, chyba że jest to pierwsza bądź ostatnia realizacja wtedy pomijamy któryś z przycisków.
Dotychczasowy efekt można zobaczyć tutaj.
W tej chwili jest 11 linków jak mógłbym rozwiązać wyświetlanie tego, żeby gdy znajduję się na 6 stronie widać nr od np. 2 - 10 i po bokach przyciski wstecz dalej, proszę o propozycje.
Edit 1:
wpadłem na pewien pomysł jednak nie wiem czy da radę tak to zrobić.
Może można stworzyć zapytanie które pobiera z bazy np. 5 rekordów mniej i 5 więcej od wskazanego warunku where id_realizacji = id_realizacji;
Tylko nie mogę wymyślić postaci takiego zapytania...
rozwiązałem problem za pomocą jQuery i styli css.
Przed i po pętli umieściłem dwa a href'y jako przyciski wstecz i dalej.
Dodatkowo dodałem parametry id i alt oraz domyslnie dla linków generowanych przez pętle display none;
<a href="#" alt="" id="" class="prev" rel="" ><</a> <?php $i = 1; foreach ($get_realizacje->result() as $val) { ?> if ($val->id_realizacji == $id_realizacji) { } <?php $i++; } ?> <a href="#" alt="" id="" class="next" rel="" >></a>
Tutaj cały jquery odpowiedzialny za wyświetlanie konkretnych numerów linków
var numerek = parseInt($(".links_menu").attr("alt")); // numer aktualnie oglądanej realizacji var prev1 = numerek - 1; // numer relizacji poprzedzającej var next1 = numerek + 1; // numer realizacji następnej // założenie że ma się na raz wyświetlać 13 linków (+ wstecz i next) if(numerek < 7){ var num_1 = 13 - numerek; var max = numerek + num_1 // ile linków ma być wyświetlonych po aktualnie oglądanej realizacji jeżeli oglądana realizacja jest pierwszą z 6 }else{ var max = numerek + 6; //ile linków ma być wyświetlonych po aktualnie oglądanej realizacji (tak żeby oglądanej link zawsze był na środku) } if(numerek > <?php echo $ile_elem - 6 ?>){ // $ile_elem ilość wszystkich linków var num_2 = numerek - (<?php echo $ile_elem - 6 ?>); var min = (numerek - 6) - num_2 // ile linków ma być wyświetlonych po aktualnie oglądanej realizacji jeżeli oglądana realizacja jest ostatnią z 6 }else{ var min = numerek - 6; //ile linków ma być wyświetlonych przed aktualnie oglądaną realizacją (tak żeby oglądanej link zawsze był na środku) } for(i=min; i<=max;i++){ $("#"+i).css({"display":"inline"}); // pętla wyświetlająca tylko linki z pożądanego przedziału } var prev = $("#"+prev1).attr("rel"); var next = $("#"+next1).attr("rel"); if(numerek > 1){ $(".prev").attr('rel', prev); }else{ $(".prev").css({'display':"none"}); // jeśli jesteśmy na pierwszej realizacji przycisk wstecz niewidoczny } if(numerek < <?php echo $ile_elem; ?>){ $(".next").attr('rel', next); }else{ $(".next").css({'display':"none"}); // jeśli jesteśmy na ostatniej realizacji przycisk dalej niewidoczny }
Jeśli ktoś ma lepszy pomysł jak można wyświetlić te linki proszę o podpowiedź
Rezultat działania można podejrzeć tutaj