数据表:根据查询显示操作按钮

Mac*_*Luc 4 javascript mysql datatable jquery

我有jquery DataTables通过ajax调用显示数据。一切都很好地加载,并且在最后一列中,我添加了一个操作按钮,该按钮会将数据添加到另一个数据库。
但是我似乎无法弄清楚如何解决一件事:
当按下按钮并且系统已将行数据添加到另一个数据库时,我不想在重新加载时再次显示该按钮。
我知道我当然需要添加数据库中所有行的ID,因此我进行了数据库查询,返回所有已添加的行ID-但是如何检查ID是否与其中的一行匹配我的表格,然后不显示dataTables中该行的按钮?
在下面,您可以看到我如何设置数据表:

var table = $('#user-table').DataTable({
    "destroy": true,
    "processing": false,
    "serverSide": false,
    "ajax": {
            "url": "myAjaxCall",
            "dataType": "json",
            "data": JSON.stringify(data()),
            "type": "GET",
            "dataSrc": "collection"
    },
    "columns": [
        {"data": "customerNumber"},
        {"data": "name"},
        {"data": "coNumber"},
        {"data": "city"},
        {"data": "email"},
        {"data": "balance"},
        {"data": null,
            "defaultContent": "<a href='#' class='myButton btn'>Add</a>",
            className: "center", "bSortable": false, "bSearchable": false}
    ]
});
Run Code Online (Sandbox Code Playgroud)

我真的很需要这方面的帮助-第一次使用dataTables-我很喜欢,但是只需要把它送到终点线:-)

SSA*_*SSA 5

您可以使用rowCallback函数。

var arrayOfAlreadyAddedRows = [1,5,7];  //Here is array you made from db.

"rowCallback": function( row, data ) {
    // I assume in your data you have a rowId column.

    if ( $.inArray(data.rowId, arrayOfAlreadyAddedRows ) !== -1 ) {
        $(row).find('td:eq(6)').html( "<a href='#' class='myButton btn'>Add</a>");
    }else{
       $(row).find('td:eq(6)').html("<b>Already added</b>");
    }
}
Run Code Online (Sandbox Code Playgroud)

或者您已经在表格数据中标记了添加的行。类似于名为“添加”的列,其值为yes / no /

"rowCallback": function( row, data ) {
    if (data.added === "yes") {
        $(row).find('td:eq(6)').html("<a href='#' class='myButton btn'>Add</a>");
    }else{
        $(row).find('td:eq(6)').html("<b>Already added</b>");
    }
}
Run Code Online (Sandbox Code Playgroud)