Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将其他参数传递给jQuery DataTable ajax调用?_Javascript_Ajax_Datatables - Fatal编程技术网

Javascript 如何将其他参数传递给jQuery DataTable ajax调用?

Javascript 如何将其他参数传递给jQuery DataTable ajax调用?,javascript,ajax,datatables,Javascript,Ajax,Datatables,加载jQuery数据表时,代码如下所示。如何向AJAX调用传递其他参数?下面的问题和答案中建议的fnServerParams回调无效。也就是说,天真地使用aodata.push()会导致“push未定义”(因为aodata确实不是数组)。那么正确的方法是什么呢 相关问题: self.dataTable = self.dataTableContainer.DataTable({ "autoWidth": false, "bSort": false,

加载jQuery数据表时,代码如下所示。如何向AJAX调用传递其他参数?下面的问题和答案中建议的fnServerParams回调无效。也就是说,天真地使用
aodata.push()
会导致“push未定义”(因为aodata确实不是数组)。那么正确的方法是什么呢

相关问题:

self.dataTable = self.dataTableContainer.DataTable({
            "autoWidth": false,
            "bSort": false,
            "displayStart": 0,
            "paging": false,
            "lengthChange": false,
            "processing": true,
            "serverSide": true,
            "dom": "<'dataTables_header dashboard_alert_history__alertHeader'i>",
            "ajax": {
                url: getDataUri,
                error: onError,
                cache: false,
                "fnDrawCallback": onTableDrawn,
            },
            "fnDrawCallback": onTableDrawn,
            "language": {
                "info": resources.alarmHistory,
                "infoEmpty": resources.alarmHistory,
                "infoFiltered": ''
            },
            "columns": [
                {
                    "data": "timestamp",
                    "mRender": function (data) {
                        return IoTApp.Helpers.Dates.localizeDate(data, 'L LTS');
                    },
                    "name": "timestamp"
                },
                {
                    "data": "deviceId",
                    "mRender": function (data) {
                        return htmlEncode(data);
                    },
                    "name": "deviceId"
                },
                {
                    "data": "ruleOutput",
                    "mRender": function (data) {
                        return htmlEncode(data);
                    },
                    "name": "ruleOutput"
                },
                {
                    "data": "value",
                    "mRender": function (data) {
                        return htmlEncode(IoTApp.Helpers.Numbers.localizeFromInvariant(data));
                    },
                    "name": "value"
                },
            ],
            "columnDefs": [
                {
                    "targets": [0, 1, 2, 3],
                    "className": 'table_alertHistory_issueType',
                    "width": "20%"

                }
            ],
        });
代码:

self.dataTable = self.dataTableContainer.DataTable({
            "autoWidth": false,
            "bSort": false,
            "displayStart": 0,
            "paging": false,
            "lengthChange": false,
            "processing": true,
            "serverSide": true,
            "dom": "<'dataTables_header dashboard_alert_history__alertHeader'i>",
            "ajax": {
                url: getDataUri,
                error: onError,
                cache: false,
                "fnDrawCallback": onTableDrawn,
            },
            "fnDrawCallback": onTableDrawn,
            "language": {
                "info": resources.alarmHistory,
                "infoEmpty": resources.alarmHistory,
                "infoFiltered": ''
            },
            "columns": [
                {
                    "data": "timestamp",
                    "mRender": function (data) {
                        return IoTApp.Helpers.Dates.localizeDate(data, 'L LTS');
                    },
                    "name": "timestamp"
                },
                {
                    "data": "deviceId",
                    "mRender": function (data) {
                        return htmlEncode(data);
                    },
                    "name": "deviceId"
                },
                {
                    "data": "ruleOutput",
                    "mRender": function (data) {
                        return htmlEncode(data);
                    },
                    "name": "ruleOutput"
                },
                {
                    "data": "value",
                    "mRender": function (data) {
                        return htmlEncode(IoTApp.Helpers.Numbers.localizeFromInvariant(data));
                    },
                    "name": "value"
                },
            ],
            "columnDefs": [
                {
                    "targets": [0, 1, 2, 3],
                    "className": 'table_alertHistory_issueType',
                    "width": "20%"

                }
            ],
        });
self.dataTable=self.dataTableContainer.dataTable({
“自动宽度”:false,
“bSort”:错误,
“显示开始”:0,
“分页”:false,
“长度变化”:错误,
“处理”:对,
“服务器端”:正确,
“dom”:“,
“ajax”:{
url:getDataUri,
错误:onError,
cache:false,
“fnDrawCallback”:OnTableDrawed,
},
“fnDrawCallback”:OnTableDrawed,
“语言”:{
“info”:resources.alarmHistory,
“infoEmpty”:resources.alarmHistory,
“信息过滤”:”
},
“栏目”:[
{
“数据”:“时间戳”,
“mRender”:功能(数据){
返回IoTApp.Helpers.Dates.localizeDate(数据'L LTS');
},
“名称”:“时间戳”
},
{
“数据”:“设备ID”,
“mRender”:功能(数据){
返回htmlEncode(数据);
},
“名称”:“设备ID”
},
{
“数据”:“规则输出”,
“mRender”:功能(数据){
返回htmlEncode(数据);
},
“名称”:“规则输出”
},
{
“数据”:“值”,
“mRender”:功能(数据){
返回htmlEncode(IoTApp.Helpers.Numbers.localizeFromInvariant(data));
},
“名称”:“值”
},
],
“columnDefs”:[
{
“目标”:[0,1,2,3],
“类名称”:“表\警报历史\发布类型”,
“宽度”:“20%”
}
],
});

我忽略了RTFM。
fnServerParams
回调现在适用于1.9版和更早版本。在最新版本的DataTables中,可以利用ajax数据参数。在下面的示例中,将
mykey
附加到
d
对象将完成以下操作:

$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": {
            "url": "scripts/server_processing.php",
            "data": function ( d ) {
                d.myKey = "myValue";
                // d.custom = $('#myInput').val();
                // etc
            }
        }
    } );
} );

令人惊叹的!这正是我要找的。谢谢你的回答!如何在已初始化的数据表上执行此操作?@SandeepBalagopal我已经多年了,但我认为这是一个不同的问题。您会问:“加载表后如何操作它?”或者更可能的是,您希望捕获ajax承诺并在数据显示之前对其进行操作。我希望在初始化后将额外的参数传递给ajax url。我发现我必须破坏这个表并重新创建它。@SandeepBalagopal我仍然在寻找一个类似问题的答案。如果你有解决办法,请帮助我。