RuzgarISIK adlı üyeden alıntı: mesajı görüntüle
Bende scriptlerimde datatables kullanıyorum. server side classı bana çok karmaşık gelmişti. class kullanmadan ajax postun yapıldığı her tablo istekleri için. Şu yapıda bir kodum var. Kendinize göre düzenleyebilirsiniz.
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' and $_SERVER['HTTP_REFERER'] == site_url('admin-duyurular')) {
    $toplam_veri = $db->from('menu')
    ->select('count(id) as total')
    ->total();
    $query = '';
    $output = array();
    $query .= 'SELECT * FROM duyurular ';

    if(isset($_POST["search"]["value"])) {
        $query .= 'WHERE duyuru LIKE "%'.$_POST["search"]["value"].'%"';
        $query .= 'OR link LIKE "%'.$_POST["search"]["value"].'%"';
    }
    $columns = array(
        0 => 'duyuru',
        1 => 'link'
    );
 
    if(isset($_POST["order"])) {
        $query .= ' ORDER BY '. $columns[$_POST['order'][0]['column']].' '.$_POST['order']['0']['dir'].' ';
    } else {
        $query .= ' ORDER BY id DESC ';
    }
    if($_POST["length"] != -1) {
        $query .= 'LIMIT '.$_POST['start'].','.$_POST['length'];
    }
    $statement = $db->prepare($query);
    $statement->execute();
    $result = $statement->fetchAll();
    $data = array();
    $filtered_rows = $statement->rowCount();
    foreach($result as $row) {
        $sub_array = array();

        $sub_array[] = $row["duyuru"];
        $sub_array[] = $row["link"];
        $sub_array[] = '<button type="button" name="sil" id="'.$row["id"].'" class="btn btn-danger btn-xs sil"><i class="fa fa-trash"></i></button>';
        $data[] = $sub_array;
    }
    $output = array(
        "draw" => intval($_POST["draw"]),
        "recordsTotal" => $filtered_rows,
        "recordsFiltered" => $toplam_veri,
        "data" => $data
    );
    echo json_encode($output);
}
Sonuç Mükemmel

https://www.youtube.com/watch?v=XQsUYC67SE0
Hocam bu kodunu mümkünse html tarafı ile birlikte atma imkanınız var mı acaba