使用纯json输入时,使用数据表获取rowid值

时间:2018-01-14 07:43:13

标签: javascript jquery json datatables

在我的项目中,我使用数据表直接从数据库中显示数据。我的输入数据是纯JSON,我从未使用过datatables网站中提到的任何后端处理方法

 $(document).ready(function() {
    var table = $('#example').DataTable( {

        "order": [[ -0 ]],
        "pageLength": 24,
        "oLanguage": { "sSearch": '<a class="btn searchBtn" id="searchBtn"><i class="fa fa-search"></i></a>' },
        "lengthChange": false,

        "ajax": {
            "url": "data.php?content=userdata",
            "dataSrc": ""
        },

        "columns": [            
            { "data": "id",
               "visible": false,
            },
            { "data": "oid" },
            { "data": "name" },
            { "data": "mobile" },
            { "data": "email" },
            { "data": null,
                "targets": -0,
                "data": null,
                "defaultContent": "<button>test</button>",
            }
        ],

    } );

    $('#example tbody').on( 'click', 'button', function () {
        var data = table.row( $(this).parents('tr') ).data();
        alert("oid is: "+ data[ 1] );
    } );
} );

我的JSON输入就像这样

[
    {
    id: "3",
    oid: "213",
    name: "Koh Tien Kit Thomas ",
    mobile: 0123456789,
    email: "some@mail.com",
    }
]

但是当我单击数据表行按钮时,它表示值未定义。我的json不包括数据对象作为datatables网站提到。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

API方法row().data()以原始格式返回数据。由于您使用了对象,因此data['oid']可以使用OID。

请改用以下代码:

$('#example tbody').on( 'click', 'button', function () {
    var data = table.row( $(this).parents('tr') ).data();
    alert("oid is: "+ data['oid'] );
} );