2

我有一个 jQuery 数据表插件,它执行以下操作,

<tr>
            <th>Id</th>
            <th>Datee</th>
            <th>Delete</th>
</tr>

 $('#data').dataTable( {
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "userlist.php",
        "aoColumns": [
            null,
            null,
            {
                "mDataProp": null,
                "sDefaultContent": '<a href="delete.php?action=activate&">DEL</a>'
            }
        ]
    } );

所以我在这里做的是我正在使用服务器端处理获取数据并添加一个带有链接的附加列以删除记录。

现在我希望 id=<> 将该特定记录添加到 & 末尾的 href 中

a href="delete.php?action=activate&id=<<first column value> .

我还想将 MySQL 日期转换为 PHP 日期以用于第二列。

如何才能做到这一点 ?

谢谢。

4

3 回答 3

1

您可以使用getData或使用 jquery 来完成。
更改以下内容:

"sDefaultContent": '<a href="delete.php?action=activate&">DEL</a>'

到:

"sDefaultContent": '<a href="delete.php?action=activate&" class="delete">DEL</a>'

然后使用以下代码:

$('#data').on('click', 'td .delete', function() {
    var id = $(this).closest('tr').find('td:first').html();
});

演示

于 2012-05-19T20:49:35.570 回答
1

试试这个:修改里卡多的答案如下:

"sDefaultContent": '<a href="delete.php?action=activate&" class="delete">DEL</a>'

$('#data').on('click', 'td .delete', function(e) {
    e.preventDefault()
    var id = $(this).closest('tr').find('td:first').html();
    var href='delete.php?action=activate&id=' + id;
//  $('a.delete', $(this)).attr('href', href);
    window.location.href = href;
});

编辑:当表格以 HTML 呈现时,您不需要id添加到链接的 href 属性。以下代码将delete.php通过 ajax 调用脚本并将值传递id给该脚本。

$('#data').on('click', 'td .delete', function(e) {
    e.preventDefault()
    var id = $(this).closest('tr').find('td:first').html();
    $.get("delete.php", {id:id});
});

(然后,您还需要以某种方式更新显示的数据表 - 有用于此的 API 函数:删除数据表的一行)。

更新:另一种选择是执行以下操作:

$("a.delete").each(function(){
    var id = $(this).closest('tr').find('td:first').html();
    var href = "delete.php?action=activate&id=" + id;
    $(this).attr('href', href);
});
于 2012-05-20T10:11:05.147 回答
0

使用版本 1.8.2,我能够使用 mDataProp 的函数返回 html。在您的情况下,它看起来像:

"mDataProp": function (row) { '<a href="delete.php?action=activate&' + row[0] + '">DEL</a>'; }
于 2012-12-05T18:51:31.860 回答