在数据表codeigniter中使用json显示数据
Posted
技术标签:
【中文标题】在数据表codeigniter中使用json显示数据【英文标题】:Display data using json in datatables codeigniter 【发布时间】:2016-09-20 13:30:24 【问题描述】:我想在数据表中使用 json 数据格式显示我的数据,但我没有在表中获取任何数据。谁能帮我通过 JSON 在数据表中显示数据?
这是我的控制器:
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"]
【问题讨论】:
您能分享一下生成的 json 吗? 【参考方案1】:检查您的 json 是否返回以表格数据为值的“数据”属性,即:
"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
。
【讨论】:
谢谢你 sebastianb 实际上我是 JSON 和数据表的新手,如果我将这些列更改为数据,我会得到空表但没有数据显示 colud 你帮助我 尝试检查查询(get_active_courses)是否真的返回了一些东西。 我已经用 last_query 检查了它显示正确的查询@Sebastianb 但是查询返回了什么?尝试在 echo 之前使用 die(var_dump($result)),或者使用浏览器中的开发人员工具检查 ajax 响应。 我正在获取 JSON 格式的数据,但我想在以上是关于在数据表codeigniter中使用json显示数据的主要内容,如果未能解决你的问题,请参考以下文章
无法在Codeigniter页面上显示Morris.JS图表,使用JSON数据作为图表的输入
通过在数据库中查询图像文件名,在 Codeigniter 中使用 AJAX 显示图像列表
Codeigniter,如何获取以json格式显示的数据库表数据?