Javascript 获取要在html链接中使用的DataTables单元格值

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

我以为这是件简单的事,但是

使用DataTables,我希望隐藏表的第一列,并在下一列单元格的HTML图像链接中使用该单元格数据

使用“用户ID”的html链接

我已经看了fnGetData()和mRender,现在我感到很困惑

我的代码:

"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”非常感谢,我完全明白你的意思。