Is it possible to use AJAX pagination in Codeigniter without editing the pagination libraries? Will editing the pagination libraries make life much easier?
You shouldn't need to edit the pagination library. AJAX is all front-end bro. You simply make a view which displays your result listings and make another view which contains a div you'll populate with your listings view. Inside your results container you can load in ajax responses into the div using that other view.
Use plugin Jquery Pagintation
Add jquery before loading view.
//Define model function with limit
public function modelFunction($limit=0)
{
$this->db->select("....col_name....");
//....................
//.........
$this->db->limit(10,$limit)->order_by('id', 'desc');
return $this->db->get()->result_array();
}
//Define controller function with limit
function controllerFunction($limit = 0)
{
$config['base_url'] = path_to_controllerFunction
$config['total_rows'] = call_to_total_count_function;
$config['per_page'] = 10;
$data["total"] = call_to_total_count_function;
$config['use_page_numbers'] = TRUE;
$data["per_page"] = 10;
$config['full_tag_open'] = "<div class = 'pagination'>";
$config['full_tag_close'] = "</div>";
//$config['additional_param'] = 'serialize_form()';
$config['div'] = '#div_to_load_result'; /* Here #content is the CSS selector for target DIV */
//$config['js_rebind'] = "alert('it works !!'); "; /* if you want to bind extra js code */
$this->load->library('table');
$this->jquery_pagination->initialize($config);
$html = $this->jquery_pagination->create_links();
$html .= '<br>';
//$this->table->function = 'htmlspecialchars';
//$this->table->set_heading('Delivery','image','time','delivery','old');
$html .= $this->table->generate($this->modelname->modelFunction( $limit ));
echo $html;
}
// first time loading result in controller
function index()
{
$config['base_url'] = controllerFunction
$config['total_rows'] = total_number_of_result;
$config['per_page'] = 10;
$data["total"] = total_number_of_result
$data["per_page"] = 10;
$config['use_page_numbers'] = TRUE;
$config['full_tag_open'] = "<div class = 'pagination'>";
$config['full_tag_close'] = "</div>";
//$config['additional_param'] = 'serialize_form()';
$config['div'] = '#div_to_load_result'; /* Here #content is the CSS selector for target DIV */
//$config['js_rebind'] = "alert('it works !!'); "; /* if you want to bind extra js code */
$this->load->library('table');
$this->jquery_pagination->initialize($config);
$data['html'] = $this->jquery_pagination->create_links().'<br>'.$this->table->generate($this->modelname->modelFunction());
$this->theme->view(path_of_view, $data);
}
// now in view add following line
<div id="mygrid"><?php echo $html; ?></div>