【问题标题】:How do I enable DataTable JS Server Side?如何启用 DataTable JS 服务器端?
【发布时间】:2019-10-08 10:20:20
【问题描述】:

我正在尝试将函数表作为数据表,但作为菜鸟失败了。 我想要搜索和分页数据表。有人可以帮忙吗?

$(document).ready(function(){  

function fetch_data()
{
    $.ajax({
        url:"fetch.php",
        method:"POST",
        dataType:"json",
        success:function(data)
        {
            var html = '';
            for(var count = 0; count < data.length; count++)
            {
                html += '<tr>';
                html += '<td><input type="checkbox" id="'+data[count].id+'" data-name="'+data[count].name+'" data-address="'+data[count].address+'" data-gender="'+data[count].gender+'" data-designation="'+data[count].designation+'" data-age="'+data[count].age+'" class="check_box"  /></td>';
                html += '<td>'+data[count].name+'</td>';
                html += '<td>'+data[count].address+'</td>';
                html += '<td>'+data[count].gender+'</td>';
                html += '<td>'+data[count].designation+'</td>';
                html += '<td>'+data[count].age+'</td></tr>';
            }
            $('tbody').html(html);
        }
    });
}

fetch_data();

**更新:**也试过了

$('#myTable').DataTable( {
   serverSide: true,
   ajax: {
    url:"product_fetchmulti.php",
    method:"POST",
    dataType:"json",
    success:function(data)
    {
        var html = '';
        for(var count = 0; count < data.length; count++)
        {
            html += '<tr>';
            html += '<td><input type="checkbox" id="'+data[count].product_id+'" data-name="'+data[count].product_name+'" data-product_sku="'+data[count].product_sku+'" data-product_status="'+data[count].product_status+'" data-product_quantity="'+data[count].product_quantity+'" data-product_color="'+data[count].product_color+'" class="check_box"  /></td>';
            html += '<td>'+data[count].product_name+'</td>';
            html += '<td>'+data[count].product_sku+'</td>';
            html += '<td>'+data[count].product_status+'</td>';
            html += '<td>'+data[count].product_quantity+'</td>';
            html += '<td>'+data[count].product_color+'</td></tr>';
        }
        $('tbody').html(html);
    }
    }
} );

【问题讨论】:

  • 欢迎来到 Stackoverflow。本网站旨在帮助解决特定的编程问题,而不是作为阅读图书馆手册的替代品。
  • 请不要以否定现有答案的方式更改代码来编辑您的问题。有用的答案表明您没有致电.DataTable,但您的编辑覆盖了您没有通过电话呼叫它 - 使回答者看起来好像没有查看您的第一行代码。一定要添加额外的尝试作为额外的代码。

标签: javascript jquery datatables


【解决方案1】:

初始化数据表的更好方法是使用此处显示的示例:

https://www.datatables.net/examples/ajax/objects.html

让您的 Ajax 链接以 Ajax 选项卡中所示的格式回显数据,然后设置您的 JavaScript 和 HTML,如各自选项卡中所示。如果您有一个查询从数据库返回一个对象数组,您可以像这样回显您的响应:

$jsonEncoded =  '{"data": ' . json_encode($result) . '}';
echo $jsonEncoded;

【讨论】:

    【解决方案2】:

    您是否在使用 DataTables 插件 (https://datatables.net/)?

    如果是,我认为您不会调用数据表函数。这就是为什么您无法搜索和分页标签的原因。

    以下代码使用JQuery

    //myTable is your table id
    $(document).ready( function () {
        $('#myTable').DataTable();
    } );
    

    编辑: 根据您的编辑,您正在尝试在 datatable 为您执行此操作时重写选项卡。您只需要获取您的 json(使用 ajax 查询)并设置列:

    $('#myTable').DataTable( 
        { serverSide: true,
          "ajax": 
               { url:"product_fetchmulti.php",
                 method:"POST",
                 dataType:"json", 
               },
          "columns":
               [
                  {"data" : "product_id"}
                  {"data" : "product_name"} 
                     .... 
               ]
              });
    });
    

    【讨论】:

    • 我认为您应该尝试 Mark answer,因为您使用的是 AJAX。我们应该可以访问您使用 元素的 html 代码。我认为你应该更明确地说明什么不起作用。显示搜索栏和分页?
    • &lt;table id="myTable" class="table table-bordered table-striped"&gt; &lt;thead&gt; &lt;th width="5%"&gt;&lt;/th&gt; &lt;th width="20%"&gt;Name&lt;/th&gt; &lt;th width="30%"&gt;Address&lt;/th&gt; &lt;th width="15%"&gt;Gender&lt;/th&gt; &lt;th width="20%"&gt;Designation&lt;/th&gt; &lt;th width="10%"&gt;Age&lt;/th&gt; &lt;/thead&gt; &lt;tbody&gt;&lt;/tbody&gt; &lt;/table&gt;
    【解决方案3】:

    终于解决了

    '$('tbody').html(html);这一行之后:

    $('#myTable').DataTable({
    "columnDefs": [
    { "searchable": true, "targets": 0 }],
    });
    

    【讨论】:

      猜你喜欢
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 2018-01-30
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多