我想在数据表中使用json数据格式显示我的数据,但我没有在表中获取任何数据。任何人都可以帮我通过JSON在datatable中显示数据吗?
这是我的控制者:
public function data_courses(){
$result=$this->Users_model->get_active_courses();
echo json_encode($result);
}
public function courses_list(){
$this->authentication();
$this->load->view('courses');
}
这是我的观点:
<table class="table table-striped table-hover table-bordered" id="allcourses">
<thead>
<tr role="row">
<th>
Course Name
</th>
<th>
Indian Price
</th>
<th>
U S Price
</th>
<th>
Course Duration
</th>
<th>
Discount
</th>
<th>
<center>Pick Course</center>
</th>
</tr>
</thead>
</table>
这是我的剧本:
$(document).ready(function() {
$('#allcourses').dataTable({
"aLengthMenu": [
[5, 15, 20, 100, -1],
[5, 15, 20, 100, "All"]
],
"ajax": "Student/data_courses",
"aoColumns": [
{"data": "course_name"},
{"data": "price_INR"},
{"data": "price_USD"},
{"data": "no_of_hours"},
{"data": "discount"},
{"data": "status"},
{ "bSortable": false }
]
});
});
这是我的模特
public function get_active_courses(){
$this->db->select('*');
$this->db->from('courses');
$this->db->where('status',1);
$query=$this->db->get();
return $query->result();
}
我的JSON数据
{"data":[{"course_id":"1","course_name":" PHP","price_INR":"25,000","price_USD":"750","no_of_hours":"86","date":"2016-05-19 17:58:47","status":"1","discount":"5.89"},{"course_id":"5","course_name":"Java","price_INR":"15,000","price_USD":"650","no_of_hours":"25","date":"2016-05-14 07:59:24","status":"1","discount":"2.50"},{"course_id":"6","course_name":"Dot net","price_INR":"23,000","price_USD":"250","no_of_hours":"36","date":"2016-05-14 12:16:33","status":"1","discount":"5.63"},{"course_id":"7","course_name":"python","price_INR":"15000","price_USD":"650","no_of_hours":"78","date":"2016-05-14 19:25:34","status":"1","discount":"2.50"},{"course_id":"9","course_name":"HTML & CSS","price_INR":"28,000","price_USD":"980","no_of_hours":"78","date":"2016-05-14 19:31:16","status":"1","discount":"2.36"}]}
答案 0 :(得分:1)
检查你的json返回一个“data”属性,其中表格数据为值,即:
{
"data" : [
{...},
{...}
...
]
}
为此,只需更改
即可public function data_courses(){
$result=$this->Users_model->get_active_courses();
echo json_encode($result);
}
要:
public function data_courses(){
$result=$this->Users_model->get_active_courses();
echo json_encode(array("data" => $result));
}
更多信息Here
更新:您还应该检查html表(th
元素)中的标题列数是否与javascript中的列数相同。目前,您在javascript中定义了7列,但在html中定义了6个标题列。尝试删除列定义中的最后一个{ "bSortable": false }
。