Codeigniter Ajax仅加载表

时间:2016-09-27 20:36:56

标签: php ajax codeigniter

我只是CodeIgniter中的新功能。我只是想知道是否有可能应用ajax从分页表中的数据库中获取数据?我的意思是,当我点击第二页时,它不会加载整个页面,只会加载表格。

1 个答案:

答案 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,扩展模型库。