2012-06-22 11 views
5

Widziałem wiele starych postów dotyczących tego tematu na przepełnieniu stosu, ale żadne z nich nie wydają się dawać jasności. Zrozumiałem, przechodząc przez nie, że kodek nie obsługuje wielu stronicowania w swojej klasie i że musisz napisać własną klasę.Najlepszy sposób na tworzenie wielu stron na jednej stronie w codeigniter

Zastanawiam się, czy tak jest. Jeśli jakiekolwiek ciało ma pomysł, jak to zrobić, proszę dać mi znać. Mam trzy listy, które przechodzę do widoku. Jednak po ich paginacji wszystkie trzy listy odpowiadają na to samo przesunięcie strony. Czy Ajax_pagination jest wyjściem?

Proszę zasugerować, jak to zrobić.

AKTUALIZACJA: Oto mój kod i co próbuję zrobić. To jest plik widoku. Mam dwie listy 1. org_list 2. Ind_list Próbuję przejść do tych dwóch list w plikach widoków holowania (organization_listing, individual_listing), które są załadowane w tym pliku widoku i dlatego pojawiają się na tej samej stronie. Teraz mogę utworzyć paginację jednej listy, ale gdy będę się napinał drugi plik, oba będą odpowiadać temu samemu przesunięciu uri.

Generuję łącza stronicowania w plikach widoku (organization_listing, individual_listing).

<?php 

    $config['base_url'] = 'http://localhost/socialinew/user_registration/index.php/members_area/view_members_area'; 
    $config['total_rows'] = count($org_list); 
    $config['per_page'] = 4; 
    $config['num_links'] = 20; 
    $config['full_tag_open'] = '<div id="pagination3">'; 
    $config['full_tag_close'] = '</div>'; 

    $this->pagination->initialize($config); 

    for($i=$this->uri->segment(3)+0;$i<(($this->uri->segment(3)+$config['per_page']));$i++) 
    { 
     if(isset($org_list[$i])) 
     {$temp_org[$i]=$org_list[$i]; 
     } 


    } 

    $tmp_org['org_list']=$temp_org; 


$this->load->view('organization/organization_listing',$tmp_org); 



    $org_config['base_url'] = 'http://localhost/socialinew/user_registration/index.php/members_area/view_members_area/'; 
    $org_config['total_rows'] = count($ind_list); 
    $org_config['per_page'] = 5; 
    $org_config['num_links'] = 20; 
    $org_config['full_tag_open'] = '<div id="pagination2">'; 
    $org_config['full_tag_close'] = '</div>'; 

    $this->pagination->initialize($org_config); 

    for($i=$this->uri->segment(4)+0;$i<(($this->uri->segment(4)+$config['per_page']));$i++) 
    { 
     if(isset($ind_list[$i])) 
     {$temp_ind[$i]=$ind_list[$i]; 
     } 
    } 

     $tmp_ind['ind_list']= $temp_ind;  

$ this-> Load> Widok ('individual_listing', $ tmp_ind);>

+0

Czy możesz podać przykład dokładnie tego, co próbujesz osiągnąć? – MikeCruz13

+0

Jeśli nie lubisz ajax ... możesz użyć iframe. – csotelo

Odpowiedz

1

Faceci W końcu użyłem javascript do załadowania moich pojedynczych stron na stronę, więc wysyłam swoje paginacje do trzech różnych widoków, a następnie używając javascript do wywoływania tych widoków na stronę. Nie mogłem znaleźć sposobu na zrobienie wielu paginacji na tej samej stronie.

+0

Chłopaki Zadałem to pytanie ponad rok temu, od tego czasu pracując z codeigniniter, javascript zrozumiałem, że twoje opcje są poważnie ograniczone, jeśli używasz paginacji codeigniter. Został zbudowany z myślą o bardzo podstawowym użyciu, a ty możesz natrafić na pewne ograniczenia, próbując je wykorzystać do własnych celów. Zamiast tego, gdybyś mógł zbudować własne wywołania JavaScript w javascriptu w celu tworzenia własnych paginacji, byłbyś w stanie zbudować więcej funkcjonalności. – yash

+0

jakikolwiek pomysł? mam również problem z tym .. pomoc. – Vincent

+0

@Vincent w przypadku, gdy jesteś ok/cofortable z wywołania jquery-ajax, można go użyć do paginacji. Możesz załadować swoje rekordy w kontrolerze i wysyłać wywołania ajax z frontendu z parametrami określającymi zakres rekordów, które chcesz wciągnąć na front. Rok temu, gdy zadałam to pytanie, nie czułam się dobrze z ajaxem i dlatego oczekiwałam na natywną funkcjonalność codeignitera. Ale jak się okazało, jquiery/ajax jest o wiele lepszą metodą na zrobienie tego. – yash

1

Jeśli chcesz

1 2 3 4 

results 

1 2 3 4 

results 

Jestem prawie pewna, że ​​to całkiem proste?:

  1. tylko skonfigurować do pierwszego zestawu (powiedzmy użyć uri Segment 3)
  2. Initiali ze paginacji
  3. Utwórz linki; i
  4. Wyślij to do widoku.

Następnie

  1. Konfiguracja dla drugiego zestawu (powiedzmy użyć uri Segment 4)
  2. Inicjalizować paginacji
  3. Tworzenie powiązań; i
  4. Wyślij to do widoku.
+0

Jak ustawić bazowy adres URL w takim przypadku? – yash

+0

nie można ustawić za pomocą '$ config ['base_url']'? i użyj '$ config ['uri_segment'] = ;' aby powiedzieć, który segment ma sens, aby się zmienić. Przejrzyj dokumenty na temat pomocnika url, aby pomóc w ustawieniu bazy. – MikeCruz13

+0

Tak, ustawiłem pierwszą paginację, aby wyszukać uri segment 3 i drugą stronę dla uri segmentu 4. Ale nie mogę wymyślić jak przekazać wieloznacznik w $ config [base_url] dla trzeciego segmentu URI. Przeszedłem również przez pomocnika url, ale nie mogę zobaczyć, co może mi pomóc.może coś przeoczyć. – yash

Powiązane problemy