Я могу распечатать данные, но данные не отображаются в таблице.
Я пытаюсь использовать Datatable для отображения данных.
Вот сообщения об ошибках:
Предупреждение DataTables: table id = example - Неверный ответ JSON.Для получения дополнительной информации об этой ошибке см. http://datatables.net/tn/1
модель
function allposts_count()
{
$query = $this
->db
->get('books');
return $query->num_rows();
}
function allposts($limit,$start,$col,$dir)
{
$query = $this
->db
->limit($limit,$start)
->order_by($col,$dir)
->get('books');
if($query->num_rows()>0)
{
return $query->result();
}
else
{
return null;
}
}
контроллер
function Book()
{
$columns = array(
0 =>'id',
1 =>'title',
);
$limit = $this->input->post('length');
$start = $this->input->post('start');
$columns=$this->input->post('order')[0]['column'];
$order = $columns;
$dir = $this->input->post('order')[0]['dir'];
$totalData = $this->user_model->allposts_count();
$totalFiltered = $totalData;
if(empty($this->input->post('search')['value']))
{
$posts = $this->user_model->allposts($limit,$start,$order,$dir);
}
else {
$search = $this->input->post('search')['value'];
$posts = $this->user_model->posts_search($limit,$start,$search,$order,$dir);
$totalFiltered = $this->user_model->posts_search_count($search);
}
$data = array();
if(!empty($posts))
{
foreach ($posts as $post)
{
$nestedData['id'] = $post->book_id;
$nestedData['title'] = $post->book_title;
$data[] = $nestedData;
}
}
$json_data = array(
"draw" => intval($this->input->post('draw')),
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFiltered),
"data" => $data
);
$json = json_encode($json_data);
echo $json;
$this->load->view('templates/header');
$this->load->view('users/Book',$json);
$this->load->view('templates/footer');
}
просмотр
<div class="container">
<h1>Server Side Process Datatable</h1>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</thead>
<tfoot>
<tr>
<th>ID</th>
<th>Name</th>
</tr>
</tfoot>
</table>
<!--create modal dialog for display detail info for edit on button cell click-->
<div class="modal fade" id="myModal" role="dialog">
<div class="modal-dialog">
<div id="content-data"></div>
</div>
</div>
</div>
<script>
$(document).ready(function(){
var dataTable=$('#example').DataTable({
"processing": true,
"serverSide":true,
"ajax":{
"url": "<?php echo base_url('users/Book') ?>",
"dataType": "json",
"type": "POST",
"data":{ '<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>' }
},
"columns": [
{ "data": "book_id" },
{ "data": "book_title" },
]
});
});
</script>