i have this problem with Datatable :( (Invalid JSON response) i use blade and routeone PhP code:
case 'list':
{
$records = DB::list(
$columns='*',
$tableName='groups',
$where='',
$whereArray=array(),
$order='order by id desc',
$limit='');
switch($id)
{
case 'delete-ok':
$success = messageSuccess($lang['_RECORD_DELETED_SUCCESSFULLY']);
break;
case 'delete-error':
$error = messageError($lang['_RECORD_DELETING_FAILED']);
break;
}
$params = array(
'table'=>'groups',
'pk'=>'id',
'columns'=>array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'title', 'dt' => 1 ),
array( 'db' => 'uri', 'dt' => 2 ),
array( 'db' => 'logo', 'dt' => 3 ),
array( 'db' => 'bio', 'dt' => 4 ),
array( 'db' => 'type', 'dt' => 5 ),
array( 'db' => 'date', 'dt' => 6 ,
'formatter' => function ($date, $row) {
$d = G2J($date);
return '<div class="ltr text-left">'.$d['yyyy'].'-'.$d['MM'].'-'.$d['dd'].' '.$d['HH'].':'.$d['mm'].':'.$d['ss'].'</div>';
}),
array( 'db' => 'allow_prev', 'dt' => 7 ),
array( 'db' => 'add_previlege', 'dt' => 8 )
)
);
if($id=="search")
{
$print = false;
$page_content .= accTable($params);
}
else
{
$page_content .= accList('group-list',$records);
}
//search, pagination, sort
break;
}
HTML
<div class="table-responsive" style="padding-bottom: 70px;">
<table id="list" class="table table-bordered table-striped table-hover">
<thead class="bg-primary text-light">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td><div class="small-header"></div></td>
<td><div class="small-header"></div></td>
</tr>
</thead>
</table>
</div></span>
<script>
$(function () {
$("#list").DataTable( {
"processing": true,
"serverSide": true,
"ajax": "/Admin/group/list/search",
"language": dt_lang,
"columnDefs": [
{
// The `data` parameter refers to the data for the cell (defined by the
// `data` option, which defaults to the column being worked with, in
// this case `data: 0`.
"render": function ( data, type, row ) {
return `
<div class="btn-group">
<button type="button" class="btn btn-light dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
<i class="bi bi-pencil"></i>
</button>
<ul class="dropdown-menu dropdown-menu-end">
<li><a class="dropdown-item" href="group/add/${data}"><i class="bi bi-pencil"></i> ویرایش گروه</a></li>
<li><a class="dropdown-item delete" href="group/delete/${data}" data-message=""><i class="bi bi-x"></i> حذف</a></li>
</ul>
</div>
`;
},
"targets": 0
},
],
"drawCallback": function( settings ) {
$(".dropdown-toggle").dropdown();
}
} );
})
</script>
and accTable Func:
function accTable(&$params)
{
// DB table to use
$table = $params['table'];
// Table's primary key
$primaryKey = $params['pk'];
// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = $params['columns'];
// SQL server connection information
$sql_details = array(
'user' => _DBUNAME,
'pass' => _DBPASS,
'db' => _DBNAME,
'host' => _DBHOST
);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* If you just want to use the basic configuration for DataTables with PHP
* server-side, there is no need to edit below this line.
*/
require( '../Includes/datatables/ssp.class.php' );
return json_encode(
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
);
}
the full message error is : DataTables warning: table id=list - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1
i disabled serverside but its not problem!
source https://stackoverflow.com/questions/69727648/php-datatable-invalid-json-response
Comments
Post a Comment