我想在Datatable中显示值。我打开了我的chrome dev工具并转到网络选项卡,XHR和问题是,响应是HTML文档
服务器端代码:
router.get('/agents', (req, res) => {
let dB = req.dB;
let sql = 'SELECT * FROM tbl_users WHERE role_id = 3';
dB.query(sql, (err, agents) => {
if (err) throw err;
const data = { agents };
console.log(data);
res.render('dashboard/agents', data);
});
});
客户端脚本:
$('#agent_table').DataTable( {
processing: true,
serverSide: true,
ajax: {
url: '/administrator/agents',
type: 'GET',
dataSrc: 'agents'
},
columns: [
{ data: 'user_id' },
{ data: 'checked' },
{ data: 'first_name' },
{ data: 'middle_name' },
{ data: 'role_id' },
]
} );
客户端htmlt:
<table id="agent_table" class="table table-striped table-bordered dt-responsive nowrap"
cellspacing="0" width="100%">
<thead>
<tr>
<th>User ID</th>
<th>
<div class="checkbox checkbox-success select_all">
<input class="styled" type="checkbox" id="check_all">
<label for="check_all" class="check_all_label">All</label>
</div>
</th>
<th>First Name</th>
<th>Middle Name</th>
<th>Last Name</th>
<th>Role</th>
</tr>
</thead>
</table>
控制台登录服务器
{agents:[RowDataPacket { user_id:6, first_name:&#39; Pamela&#39;, middle_name:&#39; Pearl&#39;, last_name:&#39; Sabes&#39;, 电子邮件:&#39; test@gmail.com', 密码:&#39; 1bd07c9db7ae63c02f2ee75471727f58&#39;, mobile_number:&#39; 09503713607&#39;, invite_code:&#39;&#39;, 生日:&#39; 2005年11月29日&#39;, 性别:&#39;女性&#39;, 地址:&#39;&#39;, 图像:null, contact_person:&#39;&#39;, contact_person_number:&#39;&#39;, role_id:3, 经度:&#39;&#39;, 纬度:&#39;&#39;, medical_info:&#39;&#39;, is_verified:1, is_deleted:0, created_at:&#39; 0000-00-00 00:00:00&#39;, updated_at:2018-05-30T20:42:43.000Z}]}
答案 0 :(得分:2)
我认为问题在于你对res.render的使用。因为根据快速文档,res.render()函数编译你的模板,在那里插入locals,并从这两件事创建html输出并发送它。所以试试吧。
res.json(data)
答案 1 :(得分:0)
var url = req.protocol +'://'+ req.get('host');
var draw = req.body.draw;
var row = req.body.start;
var count = 1+parseInt(row);
var rowperpage = req.body.length; // Rows display per page
//var columnIndex = req.query.order[0]['column']; // Column index
//console.log(req.body.search);
var dataArr = [];
adminTagModel.CountTagsAll(dataArr, function (totalRecordsValid)
{
var tagDataobj = {
row : row,
rowperpage : rowperpage
};
adminTagModel.showTagsAll(tagDataobj, function (totalValid)
{
for (var i = 0; i < totalValid.length; i++)
{
dataArr.push({ 'count' : count++ ,'tag_name' : totalValid[i].tag_name,'action' : "<a href='"
+url+"/admin/tagdetails/"+totalValid[i].t_id+"' target='_blank' ><i class='fa fa-eye' alt='View Detail'></i></a>"});
}
var response = {
"draw" : draw,
"iTotalRecords" : totalRecordsValid[0].allcount,
"iTotalDisplayRecords" : totalRecordsValid[0].allcount,
"aaData" : dataArr
};
res.send(response);
return response;
});