我只是CodeIgniter中的新功能。我只是想知道是否有可能应用ajax从分页表中的数据库中获取数据?我的意思是,当我点击第二页时,它不会加载整个页面,只会加载表格。
答案 0 :(得分:1)
这很有可能。我会给你一些骷髅,偷看。当然有很多方法。
JS文件:
//click pagination
$('body').on('click', '.codeigniter-pagination a', function(e){
e.preventDefault();
$('.loading').html('<i class="fa fa-spinner"></i> ');
$.ajax(
{
url: this.href,
dataType: "html",
success: function(data) {
$('.mediamanager__grid').html(data);
$('.loading').empty();
},
error: function(e)
{
alert('Error: ' + e);
}
});
});
控制器功能示例:
public function index(
$page_number=1, $order_by='id', $how='desc', $limit= 10
) {
//pagination
$config['total_rows'] = $this->picture_model->count_all();
$config['per_page'] = $limit;
$config['uri_segment'] = 4;
$config['use_page_numbers']=true;
$config['base_url'] = '/admin/mediamanager/index';
$offset = (
$this->uri->segment($config['uri_segment']) - 1
) * $config['per_page'];
$offset < 0 ? $offset = 0 : '';
$this->pagination->initialize($config);
$data['pictures']=$this->picture_model
->limit($limit, $offset)
->order_by($order_by, $how)
->get_all();
$this->load->view('admin/mediamanager/index', $data);
}
它只是用生成的html替换了一些div,并且分页也在生成的视图中。当然,可能有bug,f.e。我不确定它是第4段还是第5段。我使用的是codeigniter-base-model,扩展模型库。