2010-03-30 11 views
5

Ok, ho seguito perfettamente le istruzioni dell'esempio. In definitiva, i lavori di impaginazione, tipo di.Codeigniter Pagination - I'm stumped

Ricevo tutte le pagine elencate: 1 | 2 | > | Ultimo. Etc.

Il primo è attivo, come dovrebbe essere. Ho eseguito correttamente anche l'interrogazione, poiché ogni collegamento genererà la query corretta.

Tuttavia, quando faccio clic sul numero 2, verrà visualizzato correttamente il prossimo set di prodotti, ma verrà visualizzata l'impaginazione dalla prima pagina.

Qualunque pulsante di impaginazione clicco, restituirà il set di impaginazione principale: 1 (selezionato) | 2 | > | Ultimo. Non cambia mai! Sto perdendo la pazienza, qualcuno può aiutarmi?

+1

Can voi inserisci il tuo codice per l'impaginazione in modo che possiamo avere un'idea di cosa sta succedendo. – Cory

risposta

9

Penso che potrei sapere che cosa sta succedendo. Devi dire alla libreria di impaginazione quale segmento dell'URL contiene l'offset.

Ad esempio, se l'URL è/prodotti/sfogliare/all/20, è necessario informare CodeIgniter che il 4 ° segmento detiene l'offset

$config['uri_segment'] = 4; 

Il valore predefinito per la libreria è URL segmento # 3. Se l'offset nel tuo URL non è in posizione 3 e ti dimentichi di dirlo alla libreria di impaginazione, interpreterà il segmento sbagliato come l'offset. Questo può portare al tipo di comportamento che descrivi sopra dove l'impaginazione non sembra cambiare.

+0

Ce l'hai fatta! Non ho trovato quella configurazione nella documentazione, ma ha funzionato bene !! Woohoo! Sei forte. – willbeeler

+2

Questo è fantastico. Lo so solo perché ho provato lo stesso dolore quando ho iniziato a usare l'impaginazione :-) Ricordo di aver avuto lo stesso comportamento e di chiedermi cosa diavolo stesse succedendo. –

0

Quale esempio?

echo $this->pagination->create_links(); 

^^ È questo a vostro avviso?

1

Mi sono imbattuto anche nello stesso errore e finalmente sono riuscito a risolverlo. Ho solo pensato di condividere lo script del codice, forse qualcuno sarà in grado di usarlo.

=====> Regolatore

// Default function 
function index() 
{ 
    // Display listing  
    $this->listing();   
} 

function listing($argDataArr = array()) 
{ 

    // Initialize pagination 
    $pageArr['base_url'] = $this->config->item('categoryBeAction')."/listing"; 
    $pageArr['total_rows'] = 15; //assume 
    $pageArr['per_page'] = 5; //assume 
    //You need to tell the pagination library which segment of the URL holds the offset.   
    $pageArr['uri_segment'] = 4; //URL eg: http://localhost/myproject/index.php/backend/category/listing/5 
    $this->pagination->initialize($pageArr); 

    // Get list of categories 
    // Create data array and pass data to get function 
    $dataArr['limitRows'] = $pageArr['per_page']; 
    $dataArr['limitOffset'] = $this->uri->segment(4); //the dynamic value from this segment will be used as offSet 
    $viewArr['listArr'] = $this->category_model->get($dataArr); 

    //rest of the code... 

} 

======> Modello

function get($argDataArr = array()) 
{ 

    //Select the fields required 
    $this->db->select('id, name, parent_id, status'); 
    $this->db->from($this->config->item('tbl_category','dbtables')); 

    $this->db->where('parent_id', $parentId); 
    $this->db->limit($argDataArr['limitRows'], $argDataArr['limitOffset']); 
    $this->db->order_by("name", "asc"); 
     $query_result = $this->db->get(); 

    return $query_result; 
} 

======> Visualizza la pagina

  <!-- Pagination -->      
      <tr> 
      <td align="right"> 
       <?php echo $this->pagination->create_links(); ?>       
      </td> 
      </tr>