在我的项目中,我使用数据表直接从数据库中显示数据。我的输入数据是纯JSON,我从未使用过datatables网站中提到的任何后端处理方法
$(document).ready(function() {
var table = $('#example').DataTable( {
"order": [[ -0 ]],
"pageLength": 24,
"oLanguage": { "sSearch": '<a class="btn searchBtn" id="searchBtn"><i class="fa fa-search"></i></a>' },
"lengthChange": false,
"ajax": {
"url": "data.php?content=userdata",
"dataSrc": ""
},
"columns": [
{ "data": "id",
"visible": false,
},
{ "data": "oid" },
{ "data": "name" },
{ "data": "mobile" },
{ "data": "email" },
{ "data": null,
"targets": -0,
"data": null,
"defaultContent": "<button>test</button>",
}
],
} );
$('#example tbody').on( 'click', 'button', function () {
var data = table.row( $(this).parents('tr') ).data();
alert("oid is: "+ data[ 1] );
} );
} );
我的JSON输入就像这样
[
{
id: "3",
oid: "213",
name: "Koh Tien Kit Thomas ",
mobile: 0123456789,
email: "some@mail.com",
}
]
但是当我单击数据表行按钮时,它表示值未定义。我的json不包括数据对象作为datatables网站提到。如何解决这个问题?
答案 0 :(得分:0)
API方法row().data()
以原始格式返回数据。由于您使用了对象,因此data['oid']
可以使用OID。
请改用以下代码:
$('#example tbody').on( 'click', 'button', function () {
var data = table.row( $(this).parents('tr') ).data();
alert("oid is: "+ data['oid'] );
} );