I use data tables library for CodeIgniter, but when I try to sort a column I get the same table, but the ajax request is working. Here is my model.
public function get_users()
{
$this->load->library('datatables');
$this->datatables->select('users.id, users.username, users.email, users.created_at, users.updated_at, users.status, users_roles.role',false);
$this->datatables->where('users.role_id = users_roles.id');
$this->datatables->from('users, users_roles');
return $this->datatables->generate();
}
My controller :
public function get_users(){
log_message('INFO',var_export($this->input->post(),true));
$this->load->model('user_model');
echo $this->user_model->get_users();
}
And my view :
<script>
jQuery(document).ready(function() {
jQuery('#users_table').DataTable({
'iDisplayLength':10,
'bLengthChange': true,
'processing': true,
'serverSide':true,
'responsive': true,
'bFilter': true,
'bSort': true,
'columns': [
{
'data': 'username',
'bSortable': true,
'defaultContent': 'N/A',
'bSearchable' : true
},
{
'data': 'email',
'bSortable': true,
'defaultContent': 'N/A',
'bSearchable' : true
},
{
'data': 'created_at',
'bSortable': true,
'defaultContent': 'N/A',
'bSearchable' : true
},
{
'data': 'updated_at',
'bSortable': true,
'defaultContent': 'N/A',
'bSearchable' : true
},
{
'data': 'role',
'bSortable': true,
'defaultContent': 'N/A',
'bSearchable' : true
},
{
'data': 'status',
'bSortable': true,
'defaultContent': 'N/A',
'bSearchable' : true
},
{
'data': '',
'bSortable': false,
'defaultContent': '<button type="button" class="btn btn-info edit_user" style="text-align: center">Edit</button><button type="button" class="btn btn-info delete_user" style="text-align: center">Delete</button>',
'bSearchable' : false
}],
"order": [[ 3, "desc" ]],
'sAjaxSource':'/admin/users/get_users/',
'fnServerData': function (sSource, aoData, fnCallback) {
jQuery.ajax({
'dataType': 'json',
'type':'POST',
'url':sSource,
'data':aoData,
'success':fnCallback
}).done(function(response){
console.log("asdad");
});
},
'rowCallback': function(nRow, aData){
jQuery(nRow).attr('data-id', aData['id']);
}
});
});
When I try to make a search or order I get this in post : INFO - 2016-10-31
16:31:42 --> array ( 'sEcho' => '3', 'iColumns' => '7',
'sColumns' => ',,,,,,', 'iDisplayStart' => '0', 'iDisplayLength' => '10', 'mDataProp_0' => 'name', 'sSearch_0' => '', 'bRegex_0' => 'false', 'bSearchable_0' => 'true', 'bSortable_0' => 'true', 'mDataProp_1' => 'description', 'sSearch_1' => '', 'bRegex_1' => 'false', 'bSearchable_1' => 'true', 'bSortable_1' => 'true',
'mDataProp_2' => 'price', 'sSearch_2' => '', 'bRegex_2' => 'false', 'bSearchable_2' => 'true', 'bSortable_2' => 'true',
'mDataProp_3' => 'url', 'sSearch_3' => '', 'bRegex_3' => 'false', 'bSearchable_3' => 'true', 'bSortable_3' => 'true', 'mDataProp_4' => 'add_date', 'sSearch_4' => '', 'bRegex_4' => 'false', 'bSearchable_4' => 'true', 'bSortable_4' => 'true', 'mDataProp_5' => 'status', 'sSearch_5' => '', 'bRegex_5' => 'false', 'bSearchable_5' => 'true', 'bSortable_5' => 'true', 'mDataProp_6' => '', 'sSearch_6' => '', 'bRegex_6' => 'false', 'bSearchable_6' => 'true', 'bSortable_6' => 'false', 'sSearch' => '', 'bRegex' => 'false', 'iSortCol_0' => '0', 'sSortDir_0' => 'desc', 'iSortingCols' => '1', )