2017-11-22 3 views
0

Mein Englisch ist nicht gut so leid für jeden Fehler. Ich habe versucht, Codeigniter Paginierung Bibliothek zu verwenden, aber ich habe ein Problem, dass es zusätzliche Links erstellen. Meine Daten werden auf zwei Seiten vervollständigt, aber es gibt 4 Seitenlinks, die unten erscheinen, wenn ich auf den 3. oder 4. Link klicke, gibt es einen Fehler. Hier ist mein Controller-Code ..Codeigniter Seitennummerierung erstellen zusätzliche Links?

public function usr_list(){ 
    $config = array(); 
    $config["base_url"] = base_url() . "usr/usr_list"; 
    $config["total_rows"] = $this->ListModel->record_count(); 
    $config['full_tag_open'] = '<ul class="pagination">'; 
    $config['full_tag_close'] = '</ul>'; 
    $config['first_link'] = false; 
    $config['last_link'] = false; 
    $config['first_tag_open'] = '<li>'; 
    $config['first_tag_close'] = '</li>'; 
    $config['prev_link'] = '&laquo'; 
    $config['prev_tag_open'] = '<li class="prev">'; 
    $config['prev_tag_close'] = '</li>'; 
    $config['next_link'] = '&raquo'; 
    $config['next_tag_open'] = '<li>'; 
    $config['next_tag_close'] = '</li>'; 
    $config['last_tag_open'] = '<li>'; 
    $config['last_tag_close'] = '</li>'; 
    $config['cur_tag_open'] = '<li class="active"><a href="#">'; 
    $config['cur_tag_close'] = '</a></li>'; 
    $config['num_tag_open'] = '<li>'; 
    $config['num_tag_close'] = '</li>'; 
    $config["per_page"] = 10; 
    $config["uri_segment"] = 3; 
    $choice = $config["total_rows"]/$config["per_page"]; 
    $config["num_links"] = round($choice); 

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

    $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 

    $data["results"] = $this->ListModel->getUser($config["per_page"] , $page); 
    $data["links"] = $this->pagination->create_links(); 
    $this->load->view('userList' , $data); 
} 

Das ist mein Modell Code

function getUser($limit , $start){ 

    $this->db->select("u_id,name,email,phone,cnic"); 
    $this->db->from('user'); 
    $this->db->limit($limit , $start); 
    $query = $this->db->get(); 
    if($query->num_rows() > 0) { 
    foreach ($query->result() as $rows) { 
    $data[] = $rows; 
    } 
    return $data; 
} 
return false; 

}

Im Bild, das Sie letzte Datensatz auf Seite 2 sehen, aber es gibt 4 Links

Irgendwelche Vorschläge?

+0

Können Sie Ihre "record_count" -Funktion im "ListModel" -Modell posten? – Vivek

+0

Ändern $ config ["num_links"] = 1; oder sogar 0, da dies die Anzahl der Seiten ist, die vor und nach der aktuellen Seite angezeigt werden sollen. Die tatsächlichen Links werden auf den Einstellungen total_rows und per_page berechnet. – TimBrownlaw

+0

@vivek Dies ist der Code der runden Funktion: öffentliche Funktion record_count() { Rückgabe $ this-> db-> count_all ($ this-> db-> dbprefix. 'Teilnahme'); } –

Antwort

2

Ihre record_count()-Funktion gibt die Anzahl der Einträge in der 'attention' -Tabelle zurück, während die in der paginierten Tabelle angezeigten Daten aus der 'user' -Tabelle (getUser-Funktion) stammen. Die 'attention' Tabelle wird wahrscheinlich mehr Datensätze haben als in der 'user' Tabelle, die Ihnen zusätzliche Paginierungslinks bietet.

Ändern Sie die Funktion record_count() wie folgt.

public function record_count() { 
    return $this->db->count_all('user'); 
} 
+0

Danke, Sir, ich habe diesen Fehler nicht bemerkt. –

Verwandte Themen