Javascript 获取要在html链接中使用的DataTables单元格值
我以为这是件简单的事,但是 使用DataTables,我希望隐藏表的第一列,并在下一列单元格的HTML图像链接中使用该单元格数据 使用“用户ID”的html链接 我已经看了fnGetData()和mRender,现在我感到很困惑 我的代码:Javascript 获取要在html链接中使用的DataTables单元格值,javascript,php,html,datatables,Javascript,Php,Html,Datatables,我以为这是件简单的事,但是 使用DataTables,我希望隐藏表的第一列,并在下一列单元格的HTML图像链接中使用该单元格数据 使用“用户ID”的html链接 我已经看了fnGetData()和mRender,现在我感到很困惑 我的代码: "aoColumns": [ { "mData": "User_ID", "bVisible": false, "bSearchable": false, "bSortable": fals
"aoColumns": [
{ "mData": "User_ID",
"bVisible": false, "bSearchable": false, "bSortable": false
},
{ "mData": null,
"bSearchable": false, "bSortable": false,
"sClass": "center",
"sDefaultContent": '<a href="somepage.php?UID=' + "data from cell 0" + '"><img src="images/look.png" width="16"></a>'
},
“aoColumns”:[
{“mData”:“用户ID”,
“bVisible”:false,“bSearchable”:false,“bSortable”:false
},
{“mData”:空,
“可搜索”:false,“可访问”:false,
“sClass”:“中心”,
“内容”:”
},
您可以仔细查看mData
,这样您就可以执行回调函数,而不必使用隐藏列:
// Using mData as a function to provide different information for
// sorting, filtering and display.
$(document).ready( function() {
var oTable = $('#example').dataTable( {
"aoColumns": [
{ "mData": "User_ID",
"bVisible": true, "bSearchable": false, "bSortable": false
}
],
"aoColumnDefs": [ {
"aTargets": [ 0 ],
"mData": function ( source, type, val ) {
if (type === 'set') {
source.id = val;
// Store the computed dislay and filter values for efficiency
source.id_display = val=="" ? "" : '<a href="somepage.php?UID=' + val + '"><img src="images/look.png" width="16"></a>';
source.id_filter = val=="" ? "" : val;
return;
}
else if (type === 'display') {
return source.id_display;
}
else if (type === 'filter') {
return source.id_filter;
}
// 'sort', 'type' and undefined all just use the integer
return source.id;
}
} ]
} );
} );
//使用mData作为函数为
//排序、过滤和显示。
$(文档).ready(函数(){
var oTable=$('#示例')。数据表({
“aoColumns”:[
{“mData”:“用户ID”,
“bVisible”:真,“bSearchable”:假,“bSortable”:假
}
],
“aoColumnDefs”:[{
“目标”:[0],
“mData”:函数(源、类型、val){
如果(类型=='set'){
source.id=val;
//存储计算出的dislay和filter值以提高效率
source.id_display=val==“”?“”:“”;
source.id_filter=val==“”?“”:val;
返回;
}
else if(类型==='display'){
返回source.id\u显示;
}
else if(类型==='filter'){
返回source.id\u过滤器;
}
//“sort”、“type”和“undefined”都使用整数
返回source.id;
}
} ]
} );
} );
我总是自己玩这个把戏:
不要将bVisible
设置为false,因为行中不会有数据。它根本不会被渲染。使用sClass
并设置display:none
。这样,该列对用户不可见,但仍然存在
然后可以使用mRender
显示自定义单元格模板:
"aoColumnDefs": [{
"aTargets": [0],
"sClass": "hiddenID"
}, {
"aTargets": [1],
"bSearchable": false,
"bSortable": false,
"sClass": "center",
"mRender": function(data, type, full) {
return '<a href=" http://somepage.php?UID=' + full[0] + '">Click me</a>';
}
}, {
"aTargets": [2],
}, ]
“aoColumnDefs”:[{
“目标”:[0],
“sClass”:“hiddenID”
}, {
“目标”:[1],
“可搜索”:错误,
“可移植”:错误,
“sClass”:“中心”,
“mRender”:功能(数据、类型、完整){
返回“”;
}
}, {
“目标”:[2],
}, ]
现在数据已经存在,可以排序和过滤
看看这个和style.css,了解这个黑客背后的概念。谢谢你的回复,DerDu。这个想法是根本不显示User\u ID列。我想我必须将它放在表中才能获得它的单元格数据。User\u ID是MySql表中的一个列,我想用于HTML链接。也许我要开始的方式不对吗???条条大路通罗马;-)…所以问题是你将如何构建表..服务器上的所有内容?只有服务器上的数据和客户端的表?、客户端的所有数据?、json数据?等等..也许我可以回答“错误的方式”-问题如果你告诉我更多关于你在做什么;-)我有一个从DataTables生成的表,其中包含MySql数据库表中的数据。我正在尝试在表的第一列中有一个图标,该图标是指向另一个页面的链接。单击图标后,我需要将用户ID传递到该页面。我不需要将表中的用户ID设置为shown。在图标列之后,我在表中有几列,特别是编辑和删除图标。根据用户ID,我需要这些图标变为灰色,并且不可选择。我在制作表时能够很好地工作,但由于我有数据表制作表,所以我迷路了。所以首先你“手工”制作html并使用了dataTable插件..它可以工作,但现在您尝试使用纯javascript构建表,而不使用预定义的html表..正确吗?.那么如何将mysql数据“转换/注入”到javascript..ajax请求?json编码字符串??编写“javascript直接到页面?”sAjaxSource:“tf_data.php”非常感谢,我完全明白你的意思。