2010-02-24 13 views
11

Używam codeigniter i klasy stronicowania. To działa doskonale i wygląda to mniej więcej tak:CodeIgniter Problem z paginacją

«Pierwsza < 2 3 4 5> Last»

Oto mój kod:

$this->load->library('pagination'); 
$config['base_url'] = base_url().'controlpanel/'; 
$config['first_link'] = 'First'; 
$config['total_rows'] = $count; 
$config['per_page'] = '3'; 
$this->pagination->initialize($config); 
$data['pagination'] = $this->pagination->create_links(); 
$this->load->view('controlpanel', $data); 

mam to na moich trasach:

$route['controlpanel/(:num)'] = "controlpanel/index/$1"; 

Howe ver, gdy dojdę do innej strony, tj. controlpanel/3 - liczba 1 jest zawsze pogrubiona - powinna zmienić się na 2 lub 3 itd.!

Dlaczego nie?

Kiedy zmienić $config['base_url'] do base_url().'controlpanel/page' następnie robi poprawnie pracę paginacji przez boldening prawidłowy numer - ale odnośnik 1 wskazuje na adres URL controlpanel/page który jest złą stronę dla mnie jako baza jest tylko controlpanel.

Dziękuję wszystkim za pomoc.

Odpowiedz

21

Klasa stronicowania powinna sprawdzać drugi parametr, a nie trzeci (domyślny).

Dodaj to do tablicy config to zmienić:

$config['uri_segment'] = '2'; 

To niczego nie zmieni, ale być pomocne w tworzeniu url potrzebne. to zmienić:

$config['base_url'] = base_url().'controlpanel/'; 

do tego:

$config['base_url'] = site_url('controlpanel'); 
+0

Dzięki za odpowiedź Thorpe - Próbowałem powyżej i to samo się stało. Czy mówisz, że per_page jest segmentem adresu URL, który sprawdza klasa stronicowania? Przy okazji używam pliku htaccess, który usuwa część index.php. – Abs

+0

Myślę, że chodziło o '$ config ['uri_segment'] = 2;' Dodałem to i działa! Edytuj swoje pytanie, aby inni mogli je łatwiej zobaczyć. Twoja odpowiedź wywołała myśl w tym, co było potrzebne, dziękuję bardzo. Nie wiedziałem, w jaki sposób klasa stronicowania otrzymuje numer strony, do której musi się udać! – Abs

+0

bez problemu. Wymyśliłem błąd i zredagowałem go jakiś czas temu.:) –

0

również umieścić tę linię

$config['uri_segment'] = 3; 
2

dont także zapomnij sprawdzić dla .. $ inboxMessageCount tę wartość ustawioną z kontrolera

$ config ['total_rows'] = $ inboxMessage Liczyć;

Jeśli ta ustawiona wartość jest mniejsza niż wartość graniczna, paginacja nie zostanie wyświetlona.

-1
$config['first_tag_open'] = '<li>'; 

$config['first_tag_close'] = '</li>'; 

$config['first_url'] = site_url('your controller url'); 

$config['first_url'] umieścić tak, aby uczynić pracę od pierwszego znacznika URL