Thanks in Advance.
In my project am using 2 pagination in single page . In my controller i have created 2 pagination .But it not works on view .
this is my code for controller
first pagination
$id = $this->session->userdata('user_id');
$config['base_url'] = base_url()."my_admin";
$config['total_rows'] = $this->m_user->get_results_posts_a_count($id);
$config['uri_segment'] = 2;
$config['per_page'] = 3;
$config['use_page_numbers'] = TRUE;
$val=$this->uri->segment(2);
$from=$config['per_page'];
$to=isset($val)?$val:0;
$config['full_tag_open'] = "<ul class='pagination'>";
$config['full_tag_close'] ="</ul>";
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>";
$config['cur_tag_close'] = "<span class='sr-only'></span></a></li>";
$config['next_tag_open'] = "<li>";
$config['next_tagl_close'] = "</li>";
$config['prev_tag_open'] = "<li>";
$config['prev_tagl_close'] = "</li>";
$config['first_tag_open'] = "<li>";
$config['first_tagl_close'] = "</li>";
$config['last_tag_open'] = "<li>";
$config['last_tagl_close'] = "</li>";
$this->pagination->initialize($config);
$this->pagination->create_links();
$data['a_post'] = $this->post_model->getuser_a_post($id,$from,$to);
second pagination
$config['base_url'] = base_url()."my_admin";
$config['total_rows'] = $this->m_user->get_results_posts_count($id);
$config['uri_segment'] = 2;
$config['per_page'] = 3;
$config['use_page_numbers'] = TRUE;
$val=$this->uri->segment(2);
$from=$config['per_page'];
$to=isset($val)?$val:0;
$config['full_tag_open'] = "<ul class='pagination'>";
$config['full_tag_close'] ="</ul>";
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>";
$config['cur_tag_close'] = "<span class='sr-only'></span></a></li>";
$config['next_tag_open'] = "<li>";
$config['next_tagl_close'] = "</li>";
$config['prev_tag_open'] = "<li>";
$config['prev_tagl_close'] = "</li>";
$config['first_tag_open'] = "<li>";
$config['first_tagl_close'] = "</li>";
$config['last_tag_open'] = "<li>";
$config['last_tagl_close'] = "</li>";
$this->pagination->initialize($config);
$this->pagination->create_links();
$data['a_post'] = $this->post_model->getuser_a_post($id,$from,$to);
How to use this two pagination at view file within this div
<!-- code for first pagination -->
<div class="pagination pull-right"><?php echo $this->pagination->create_links();?></div>
</div>
<!-- code for second pagination -->
<div class="pagination pull-right"><?php echo $this->pagination->create_links();?></div>
</div>
I find best way to have multiple pagination is through ajax now I had problems with links when I did not use ajax for multiple pagination.
On the view of my_admin
<script type="text/javascript">
$(document).ready(function() {
function load_questions_data(page){
$.ajax({
url:"<?php echo base_url(); ?>admin/example/" + page,
method:"GET",
dataType:"json",
success:function(data) {
list = '<table class="table table-striped table-bordered">';
list += '<tbody>';
list += data.table;
list += '</tbody>';
list += '</table>';
$('.question_list').html(list);
$('.question_pagination_links').html(data.pagination);
}
});
}
load_questions_data(1);
// pag-1 class is created in the $config of pagination on controller
$(document).on("click", ".pag-1 li a", function(e){
e.preventDefault();
e.stopPropagation();
var page = $(this).data("ci-pagination-page");
load_questions_data(page);
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
function load_questions_data(page){
$.ajax({
url:"<?php echo base_url(); ?>admin/to_another_function/" + page,
method:"GET",
dataType:"json",
success:function(data) {
list = '<table class="table table-striped table-bordered">';
list += '<tbody>';
list += data.table;
list += '</tbody>';
list += '</table>';
$('.question_list').html(list);
$('.question_pagination_links').html(data.pagination);
}
});
}
load_questions_data(1);
// pag-2 class is created in the $config of pagination on controller
$(document).on("click", ".pag-2 li a", function(e){
e.preventDefault();
e.stopPropagation();
var page = $(this).data("ci-pagination-page");
load_questions_data(page);
});
});
</script>
Note you may need to set some uri routes https://www.codeigniter.com/user_guide/general/routing.html#examples
$route['admin'] = 'admin/index';
$route['admin/example/(:any)'] = 'admin/example/$1';
$route['admin/(:any)'] = 'admin/index/$1';
Function on controller you can name it what you like
<?php
class Admin extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('example_model');
}
public function index() {
// admin views in here.
}
public function example() {
$config = array();
$config["base_url"] = '#';
$config["total_rows"] = $this->example_model->total_items();
$config["per_page"] = 2;
$config["uri_segment"] = 3;
$config["use_page_numbers"] = TRUE;
$config["num_links"] = 10;
$config["full_tag_open"] = '<ul class="pagination pag-1">';
$config["full_tag_close"] = '</ul>';
$config["first_tag_open"] = '<li>';
$config["first_tag_close"] = '</li>';
$config["last_tag_open"] = '<li>';
$config["last_tag_close"] = '</li>';
$config['next_link'] = '>';
$config["next_tag_open"] = '<li>';
$config["next_tag_close"] = '</li>';
$config["prev_link"] = "<";
$config["prev_tag_open"] = "<li>";
$config["prev_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>";
$this->pagination->initialize($config);
$page = $this->uri->segment(3);
$start = ($page - 1) * $config["per_page"];
$output = array(
'pagination' => $this->pagination->create_links(),
'table' => $this->example_model->get_list($config["per_page"], $start)
);
echo json_encode($output);
}
public function to_another_function() {
$config = array();
$config["base_url"] = '#';
$config["total_rows"] = $this->example_model->total_items();
$config["per_page"] = 2;
$config["uri_segment"] = 3;
$config["use_page_numbers"] = TRUE;
$config["num_links"] = 10;
$config["full_tag_open"] = '<ul class="pagination pag-2">';
$config["full_tag_close"] = '</ul>';
$config["first_tag_open"] = '<li>';
$config["first_tag_close"] = '</li>';
$config["last_tag_open"] = '<li>';
$config["last_tag_close"] = '</li>';
$config['next_link'] = '>';
$config["next_tag_open"] = '<li>';
$config["next_tag_close"] = '</li>';
$config["prev_link"] = "<";
$config["prev_tag_open"] = "<li>";
$config["prev_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>";
$this->pagination->initialize($config);
$page = $this->uri->segment(3);
$start = ($page - 1) * $config["per_page"];
$output = array(
'pagination' => $this->pagination->create_links(),
'table' => $this->example_model->get_list($config["per_page"], $start)
);
echo json_encode($output);
}
}
Model
<?php
class Example_model extends CI_Model {
public function get_list($limit, $offset) {
$this->db->limit($limit, $offset);
$query = $this->db->get('questions');
$table = '';
foreach ($query->result_array() as $result) {
$table .= '<tr>';
$table .= '<td>' . $result['title'] . '</td>';
$table .= '</tr>';
}
return $table;
}
public function total_items() {
return $this->db->count_all_results('questions');
}
}
Try catching the result of $this->pagination->create_links() with a variable, like this:
(code for pagination 1)
$pagination1 = $this->pagination->create_links();
...
(code for pagination 2)
$pagination2 = $this->pagination->create_links();
...
Then, on your view, just echo out each variable where you want the respective pagination.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.