首页 > 解决方案 > Ajax List 是错误的,只显示数据库中所有数据的 5 个数据?

问题描述

我的表中有 10 行,但是当我想向数据表(ajax)显示所有行时,它没有显示,数据表总共只显示 10 行中的 5 行。

在这种情况下,我使用 Codeigniter 3 和 MySQL,

这是我的应用程序中数据表的屏幕截图:

我的应用程序的这张图片或图像

这是模型 > M_Kelas:

<?php
class M_Kelas extends CI_Model{ 
    
    public function cek_kelas(){
        $nama = $this->input->post('nama');
        
        $query = $this->db->query("SELECT nama_kelas FROM kelas WHERE nama_kelas='$nama'" );
        if($query->num_rows() > 0){
            return $query->result();
        }else{
            return false;
        }

    }
    
    public function detail_kelas(){
        $id = $this->input->get('id');
        $query = $this->db->query("SELECT * FROM kelas WHERE kode='$id'" );
        return $query->result();

    }
    
    public function edit_kelas($id){
        $nama= $this->input->post('nama');
            
        $data = array(
                        'nama_kelas' => $nama
                    );
        $this->db->where('kode', $id);
        $result = $this->db->update('kelas', $data);
        return $result;
    }
    
    public function hapus_kelas($id){
        $this->db->where('kode', $id);
        $result = $this->db->delete('kelas');
        return $result;
    }
    
    public function semua_kelas(){
        $query = $this->db->query("SELECT * FROM kelas order by kode asc");
        return $query->result();
    
    }
    
    
    public function simpan_kelas($nama){
        
        $data = array(
                        'nama_kelas' => $nama
                    );
        $result=$this->db->insert('kelas',$data);
        
        return $result;
    }
    
    
}
?>

这是控制器> kelas/ajax_list:

public function ajax_list()
    {
        $list = $this->kelas->get_datatables();
        $data = array();
        $no = $_POST['start'];
        foreach ($list as $kelas) {
            $no++;
            $row = array(
                "id_kelas" => $kelas['id_kelas'],
                "kd_pelajaran" => $kelas['kd_pelajaran'],
                "nama_pelajaran" => $kelas['nama_pelajaran'],
                "nama_guru" => $kelas['nama_guru'],
                "nama_prodi" => $kelas['nama_prodi'],
                "kelas" => $kelas['kelas'],
                "kapasitas" => $kelas['kapasitas']
            );


            $data[] = $row;
        }

        $output = array(
            "draw" => $_POST['draw'],
            "recordsTotal" => $this->kelas->count_all(),
            "recordsFiltered" => $this->kelas->count_filtered(),
            "data" => $data,
        );
        //output to json format
        echo json_encode($output);
    }

这是我的观点> viewKelas:

table = $('#example-table').DataTable({

            "processing": true, //Feature control the processing indicator.
            "serverSide": true, //Feature control DataTables' server-side processing mode.
            "order": [], //Initial no order.

            // Load data for the table's content from an Ajax source
            "ajax": {
                "url": "<?php echo base_url('kelas/ajax_list') ?>",
                "type": "POST"
            },
            "columns": [{
                    "data": "kd_pelajaran"
                },
                {
                    "data": "nama_pelajaran"
                },
                {
                    "data": "nama_guru"
                },
                {
                    "data": "kelas"
                },
                {
                    "data": "nama_prodi"
                },
                {
                    "data": "kapasitas"
                },
                {
                    "data": "id_kelas",
                    render: function(data) {
                        var btn = "<a class='btn btn-sm btn-primary' href='javascript:void()' title='Edit' onclick='edit_data(" + data + ")'><i class='fa fa-edit'></i></a>&nbsp&nbsp<a class='btn btn-sm btn-danger' href='javascript:void()' title='Hapus' onclick='delete_this(" + data + ")'><i class='fa fa-trash-o'></i></a>";
                        return btn;
                    }
                }
            ],
            //Set column definition initialisation properties.
            "columnDefs": [{
                "targets": [-1], //last column
                "orderable": false, //set not orderable
            }, ],

        });

标签: javascriptphpmysqlajaxcodeigniter

解决方案


“recordsFiltered”具有与“recordsTotal”不同的值。“recordsFiltred”是 globalSearch 或 columnSearch 之后的项目数。

如果没有搜索(globalSearch 或 columnSearch),则值“recordsFiltered”等于“recordsTotal”。

阅读:https ://datatables.net/forums/discussion/25985/resolved-datatables-server-side-problem-to-pagination-number-of-page-not-correct


推荐阅读