Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
Jquery 将总行数传递给数据表_Jquery_Datatable - Fatal编程技术网

Jquery 将总行数传递给数据表

Jquery 将总行数传递给数据表,jquery,datatable,Jquery,Datatable,我有一个datatables实现,它通过$\u服务器['PHP\u SELF']执行ajax请求。当页面加载时,我运行查询以获取所有记录。但是,第一个ajax调用将不受限制地再次执行此操作。我想知道是否有可能在初始ajax请求中传递总行数。这是我的datatables代码: var myTable = $('.datatable').DataTable({ "serverSide": true, "processing": true, "paging": true,

我有一个datatables实现,它通过
$\u服务器['PHP\u SELF']
执行ajax请求。当页面加载时,我运行查询以获取所有记录。但是,第一个ajax调用将不受限制地再次执行此操作。我想知道是否有可能在初始ajax请求中传递总行数。这是我的datatables代码:

var myTable = $('.datatable').DataTable({
    "serverSide": true,
    "processing": true,
    "paging": true,
    "searching": { "regex": true },
    "lengthMenu": [ [10, 25, 50, 100, -1], [10, 25, 50, 100, "All"] ],
    "pageLength": 10,
    "ajax": {
        "type": "POST",
        "url": "<?= $_SERVER['PHP_SELF']; ?>",
        "dataType": "json",
        "contentType": 'application/json; charset=utf-8',
        "data": function (data) {
            // Grab form values containing user options
            var form = {};
            $.each($("form").serializeArray(), function (i, field) {
                form[field.name] = field.value || "";
            });
            // Add options used by Datatables
            var info = { "start": 0, "length": 10, "draw": 1 };
            $.extend(form, info);
            return JSON.stringify(form);
        },
        "complete": function(response) {
            console.log(response);
       }
    }
});
var myTable=$('.datatable').datatable({
“服务器端”:正确,
“处理”:对,
“分页”:正确,
“搜索”:{“regex”:true},
“长度菜单”:[[10,25,50,100,-1],[10,25,50,100,“全部”],
“页面长度”:10,
“ajax”:{
“类型”:“职位”,
“url”:“,
“数据类型”:“json”,
“contentType”:“application/json;charset=utf-8”,
“数据”:功能(数据){
//获取包含用户选项的表单值
var form={};
$.each($(“form”).serializeArray(),函数(i,字段){
form[field.name]=field.value | |“”;
});
//添加Datatables使用的选项
var info={“开始”:0,“长度”:10,“绘制”:1};
$.extend(表格、信息);
返回JSON.stringify(form);
},
“完成”:功能(响应){
控制台日志(响应);
}
}
});

我已经找到了解决我的问题的方法,从术语上讲,这似乎是多个问题

  • 我认为,
    recordsTotal
    的值是错误的,因为它应该是我在ajax调用中想要检索的行数

  • “contentType”:“应用程序/json;charset=utf-8',
    似乎破坏了我的ajax请求

  • 现在,我使用以下方法传递总行数:

    “数据”:{ “totalRows”:“, },

  • 现在,我首先使用查询结果的计数设置
    $totalData
    ,然后使用
    $\u REQUEST
    覆盖它


  • 使用此
    “url”:“
    您可能无法得到合理的响应。应该是一个单独的php。@Jeff我检查请求是否是ajax,并相应地返回相应的值。