I can add pagination, but from page 1 I can't link to page 2. The data on page 2 can't be shown.
My code:
$config['base_url'] = base_url() . 'transaksi/index/';
$config['total_rows'] = 21;
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$config['first_link'] = 'Awal';
$config['last_link'] = 'Akhir';
$config['next_link'] = 'Selanjutnya';
$config['prev_link'] = 'Sebelumnya';
$this->pagination->initialize($config);
$bc["paginator"] = $this->pagination->create_links();
$this->load->view('transaksidigor/bg_home',$bc);
In autoload:
$autoload['libraries'] = array('database','session','pagination','form_validation','security');
The problem is that you have base_url() which is missing index.php i guess. instead you should always use site_url(). this way either you have set index.php or not it will always send you to the page you are going.
$config['base_url'] = site_url('transaksi/index');
$config['total_rows'] = 21;
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$config['first_link'] = 'Awal';
$config['last_link'] = 'Akhir';
$config['next_link'] = 'Selanjutnya';
$config['prev_link'] = 'Sebelumnya';
$this->pagination->initialize($config);
$bc["paginator"] = $this->pagination->create_links();
$this->load->view('transaksidigor/bg_home',$bc);
Please replace
$config['uri_segment'] = 3; to $config['uri_segment'] = $this->uri->rsegment(3);
Related
I using GET method for searching records. now when i have applied pagination i can't understand how to submit data to next pagination page link.
I have tried this answer. but it is just stacking page number in link segments.
example:
From
localhost/phc/search/results/0?s=ai&product_cat=all&post_type=product
To
localhost/phc/search/results/?s=ai&product_cat=all&post_type=product/12/24
so i didn't used that code.
And now my code is:
public function results() {
//pagination
$offset = $this->uri->segment(3);
$limit = 12;
//$offset = 0;
$data['limit'] = $limit;
$config['base_url'] = base_url() . 'search/results/';
$config['first_url'] = base_url() .'search/results/0';
$data['total'] = $this->All_data_model->countSearchProducts($_GET);
$config['total_rows'] = $data['total'];
$config['per_page'] = $limit;
$config['uri_segment'] = 3;
$config['next_link'] = 'Next';
$config['prev_link'] = 'Previous';
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();
$data['offset'] = $offset;
$data['total_rows'] = $config['total_rows'];
$data['page'] = 'search';
$data['navbar'] = $this->All_data_model->navbarContent();
$data['products'] = $this->All_data_model->searchResults($_GET , $offset , $limit);
$this->template->write_view('content', 'products/search', $data);
$this->template->render();
}
Tell what the best way to submit data in this case if not GET and how can i access this data.
Put offset in your url
localhost/phc/search/results?s=ai&product_cat=all&post_type=product&offset=123
and set these configs.
$config['page_query_string'] = TRUE;
$config['query_string_segment'] = 'offset';
$config['reuse_query_string'] = TRUE;
I changed your code but it's not tested at all.
public function results() {
//pagination
$offset = $this->input->get('offset') ? $this->input->get('offset') : 0;
$limit = 12;
$data['limit'] = $limit;
$config['base_url'] = base_url() . 'search/results/';
$data['total'] = $this->All_data_model->countSearchProducts($_GET);
$config['total_rows'] = $data['total'];
$config['per_page'] = $limit;
// set these mostly...
$config['page_query_string'] = TRUE;
$config['query_string_segment'] = 'offset';
$config['reuse_query_string'] = TRUE;
$config['next_link'] = 'Next';
$config['prev_link'] = 'Previous';
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();
$data['offset'] = $offset;
$data['total_rows'] = $config['total_rows'];
$data['page'] = 'search';
$data['navbar'] = $this->All_data_model->navbarContent();
$data['products'] = $this->All_data_model->searchResults($_GET , $offset , $limit);
$this->template->write_view('content', 'products/search', $data);
$this->template->render();
}
Cannot access protected property `CI_Pagination
Trying to add submit button on last page of pagination currently it's on every page by default...on line 49 i have condition to check whether i am in last page or not, I want a submit button at the end of the pagination page
Code on which error is showing..please explain how to implement
if($this->pagination->cur_page >= ceil($this->pagination->total_rows / $this->pagination->per_page))
{
$isLastPage = true;
}else{
$isLastPage = false;
}
Pagination code
public function quizdisplay()
{
//echo $this->pagination->create_links();
//$this->load->library('pagination');
$config = array();
$config['base_url'] = 'http://localhost/xampp/cii/index.php/Questions/quizdisplay';
//$config['total_rows'] = 10;
$total_row = $this->quizmodel->record_count();
$config["total_rows"] = $total_row;
$config['per_page'] = 1;
$config["uri_segment"] = 3;
$config['use_page_numbers'] = TRUE;
$config['num_links'] = $total_row;
$config['cur_tag_open'] = ' <a class="current">';
$config['cur_tag_close'] = '</a>';
$config['next_link'] = 'Next';
$config['prev_link'] = 'Previous';
$this->pagination->initialize($config);
if($this->uri->segment(3)){
$page = ($this->uri->segment(3)) ;
}else{
$page = 1;
}
$data["results"] = $this->quizmodel->getQuestions($config["per_page"], $page);
$this->pagination->create_links();
$data["links"] = $this->pagination->create_links();
View data according to array.
$this->load->view("play_quiz", $data);
}
Both the codes are in same function
I'm using codeigniter 3 and using hmvc for admin but problem pagination no showing First a Last link.i could not understand where is the problem
$config['per_page'] = 2;
$config['base_url'] = base_url().'admin/manage-cms';
$config['num_links'] = 20;
$config['uri_segment'] = 3;
$page = $this->uri->segment(3);
$limit_end = ($page * $config['per_page']) - $config['per_page'];
if ($limit_end < 0){
$limit_end = 0;
}
$config['first_link'] = 'First';
$config['last_link'] = 'Last';
$data['count_cms']= $this->cms_model->count_cms();
$config['total_rows'] = $data['count_cms'];
$data['cms'] = $this->cms_model->get_cms($config['per_page'],$limit_end);
$this->pagination->initialize($config);
i also updated the code to
$config['per_page'] = 2;
$config['base_url'] = base_url('admin/manage-cms');
$config['num_links'] = 20;
$config['uri_segment'] = 3;
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$config['first_link'] = 'First';
$config['last_link'] = 'Last';
$data['count_cms']= $this->cms_model->count_cms();
$config['total_rows'] = $data['count_cms'];
$data['cms'] = $this->cms_model->get_cms($config['per_page'],$page);
$this->pagination->initialize($config);
But following problem have found
1)in url, pagination coming like url/2,url/4,url/6 etc
But i trying to show url/1,url/2,url/3
2) I have inserted 9 records in db but still First and Last link is not displayed
$this->load->library('pagination');
$config['base_url'] = base_URL().'admin/issues/list_issues/';
$config['total_rows'] = $this->db->get('dt_issues')->num_rows();
$config['num_links']=10;
$config['per_page'] = 5;
$config['uri_segment'] = 3;
Codeigniter pagination was working properly. But when click on first link it is not working and the remaining links will work. Please help me.
$offset is the variable in which u can get value which page user is reqesting
function list_issues($offset = null)
{
$this->load->library('pagination');
........
// Pagination config
$config['base_url'] = base_URL().'admin/issues/list_issues/';
$config['total_rows'] = $this->provider_model->countprovider();
$config['per_page'] = 3;
// $config['creat_link'] = 1; <-- This is not a valid option
$config['first_link'] = 'First';
$config['last_link'] = 'Last';
// Init config
$this->pagination->initialize($config);
// If the pagination library doesn't recognize the current page add:
$this->pagination->cur_page = $offset;
.....
// further your code
}
I have a site developed in codeigniter and in a page I want to use pagination.
The problem is. my url now is smoething like that:
http://site/index.php/tee/view_tee/?id=2
This is my code into the controller:
$data['tee'] = $this->Tee_model->getTeeByUserId($this->input->get('id', TRUE));
$data['tee_like'] = $this->Tee_model->getLikeTeeByUserId($this->input->get('id', TRUE));
$data['user'] = $this->User_model->getUserById($this->session->userdata('id'));
$this->load->library('pagination');
$config['base_url'] = site_url().'/tee/view_tee/?id='.$this->input->get('id', TRUE);
$config['total_rows'] = count($data['tee']);
$config['per_page'] = 6;
$config['uri_segment'] = 3;
if (count($_GET) > 0) $config['suffix'] = '?' . http_build_query($_GET, '', "&");
$config['first_url'] = $config['base_url'].'?'.http_build_query($_GET);
$data['page_links']=$this->pagination->create_links();
$this->pagination->initialize($config);
$this->load->view('view_tee_view',$data);
With this code when I click into my pagination link I have this url:
http://site/index.php/tee/view_tee/?id=2/6?id=2
If I click again I have this:
http://site/index.php/tee/view_tee/?id=2/6?id=2/6?id=2
This is my html:
echo $this->pagination->create_links();
foreach($tee as $t){
// I have three div per lines
}
add this...
$config['page_query_string'] = TRUE;
remove this...
if (count($_GET) > 0) $config['suffix'] = '?' . http_build_query($_GET, '', "&");
$config['first_url'] = $config['base_url'].'?'.http_build_query($_GET);
[EDIT] WORKING EXAMPLE
$this->load->library('pagination');
$config['page_query_string'] = TRUE;
$config['base_url'] = site_url().'/tee/view_tee/?id='.$this->input->get('id', TRUE);
$config['total_rows'] = 200;
$config['per_page'] = 6;
$config['uri_segment'] = 3;
$this->pagination->initialize($config);
echo $this->pagination->create_links();