Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 JS数据表插件:处理标准数据表格式以外的json格式_Javascript_Jquery_Json_Datatables_Jquery Datatables - Fatal编程技术网

Javascript JS数据表插件:处理标准数据表格式以外的json格式

Javascript JS数据表插件:处理标准数据表格式以外的json格式,javascript,jquery,json,datatables,jquery-datatables,Javascript,Jquery,Json,Datatables,Jquery Datatables,我是Datatables的新手,正在尝试解决这个问题。 我有一个以特定格式输出json的服务器(见下文)。我无法在服务器端更改它 **注意:我使用link模拟我的服务器响应只是为了检查 我有两个问题 [ { "text": "Some text", "name": "somedata", "id": "89" }, { "text": "Some text", "name": "som

我是Datatables的新手,正在尝试解决这个问题。 我有一个以特定格式输出json的服务器(见下文)。我无法在服务器端更改它

**注意:我使用link模拟我的服务器响应只是为了检查

我有两个问题

[
    {
        "text": "Some text", 
        "name": "somedata", 
        "id": "89"
    }, 
    {
        "text": "Some text", 
        "name": "somedata", 
        "id": "2"
    }, 
    {
        "text": "Some text", 
        "name": "somedata", 
        "id": "12"
    }
]
  • 因为我的json响应没有dataTable所需的
    aaData:
    东西,所以我似乎无法初始化它
  • 即使我手动将
    aaData:
    添加到json中只是为了检查,dataTable也无法计算总记录数。如何手动设置?因为我无法更改服务器的输出
  • JSBIN链接:

    HTML:

    <table id="example" class="display" width="100%">
      <thead>
        <tr>
          <th> </th>
          <th>ID</th>
          <th>Name</th>
          <th>Text</th>
        </tr>
      </thead>
      <tbody></tbody>
    </table>
    
    $(document).ready( function () {
      var table = $('#example').dataTable({
      "sAjaxSource": "http://www.json-generator.com/j/cftupHnpbC?indent=4",
        "aoColumns": [{
          "mData": "id",
          "mRender": function (data, type, full) {
            return '<input type="checkbox" name="chkids[]" value="' + data + '">';
          }
        }, {
          "mData": "id"
        }, {
          "mData": "name"
        }, {
          "mData": "text"
        }], 
        "bProcessing": true,
        "bServerSide": true,
        "sServerMethod": "GET",
        "aoColumnDefs": [{
          'bSortable': false,
          'aTargets': [0]
        }],
        "fnDrawCallback": function (oSettings) {
          console.log(this.fnSettings().fnRecordsTotal());
        }
      });
    });
    

    我想您可以自己请求JSON,从中生成一个对象并将其传递给您的数据表

    var aaData;
    var table;
    
    $(document).ready( function () {
      $.ajax({
      url: 'http://www.json-generator.com/j/cftupHnpbC?indent=4'
    }).done(function(data){
      aaData = data;
      table = $('#example').dataTable({
      "aaData": aaData,
        "aoColumns": [{
          "mData": "id",
          "mRender": function (data, type, full) {
            return '<input type="checkbox" name="chkids[]" value="' + data + '">';
          }
        }, {
          "mData": "id"
        }, {
          "mData": "name"
        }, {
          "mData": "text"
        }], 
        "bProcessing": true,
        "aoColumnDefs": [{
          'bSortable': false,
          'aTargets': [0]
        }],
        "fnDrawCallback": function (oSettings) {
          console.log(this.fnSettings().fnRecordsTotal());
        }
      });
      });  
    } );
    
    var-aaData;
    var表;
    $(文档).ready(函数(){
    $.ajax({
    网址:'http://www.json-generator.com/j/cftupHnpbC?indent=4'
    }).完成(功能(数据){
    aa数据=数据;
    table=$(“#示例”).dataTable({
    “aaData”:aaData,
    “aoColumns”:[{
    “mData”:“id”,
    “mRender”:功能(数据、类型、完整){
    返回“”;
    }
    }, {
    “mData”:“id”
    }, {
    “mData”:“名称”
    }, {
    “mData”:“文本”
    }], 
    “bProcessing”:正确,
    “aoColumnDefs”:[{
    “bSortable”:错误,
    “目标”:[0]
    }],
    “fnDrawCallback”:函数(oSettings){
    console.log(this.fnSettings().fnRecordsTotal());
    }
    });
    });  
    } );
    
    我删除了
    bServerSide
    ——如果您不能更改服务器响应,我认为您无法利用它。还删除了
    sServerMethod