javascript - 数据表 : Show action button depending on query

标签 javascript jquery mysql datatable

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

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}
    ]
});

在这方面我真的需要一些帮助 - 第一次使用 dataTables - 我喜欢它,但只需要让它到达终点线:-)

最佳答案

您可以使用 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>");
    }
}

或者您已经在表格数据中标记了添加的行。类似于名为“添加”的列,其值为 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>");
    }
}

关于javascript - 数据表 : Show action button depending on query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25975375/

相关文章:

javascript - 如何处理 Javascript 异步

javascript - ShopPad的Infinite Options中有JavaScript的回调函数吗?

MySQL 搜索引擎 - AND 关键字

Jenkinsfile 中的 mysqldump 无法连接到服务器

javascript - 我正在尝试使用传单 javascript 库可视化 map 上的一些数据点。你能告诉我我的代码有什么问题吗?

javascript - 在nodejs中解析具有格式键值的数组

javascript - JQuery - 在第 3 方表单上预填充表单字段

MySQL:不允许从触发器返回结果集 #1415

javascript - 在浏览器控制台上测试 AngularJS 是否在页面上运行的快速方法?

javascript - 当用户上下滚动时移动页面上的元素