【问题标题】:how to use 2 datatables in same page?如何在同一页面中使用 2 个数据表?
【发布时间】:2017-12-19 21:05:23
【问题描述】:

如何在同一页面中使用数据表,我使用模板数据表但是当我创建新的数据表时不起作用。

这是我的代码

CSS:

<link href="<?php echo base_url();?>/assets/plugins/datatables/jquery.dataTables.min.css" rel="stylesheet" type="text/css"/>
<link href="<?php echo base_url();?>/assets/plugins/datatables/buttons.bootstrap.min.css" rel="stylesheet" type="text/css"/>
<link href="<?php echo base_url();?>/assets/plugins/datatables/responsive.bootstrap.min.css" rel="stylesheet" type="text/css"/>
<link href="<?php echo base_url();?>/assets/plugins/datatables/scroller.bootstrap.min.css" rel="stylesheet" type="text/css"/>

JavaScript:

 <!-- Datatable js -->
    <script src="<?php echo base_url();?>/assets/plugins/datatables/jquery.dataTables.min.js"></script>
    <script src="<?php echo base_url();?>/assets/plugins/datatables/dataTables.bootstrap.js"></script>
    <script src="<?php echo base_url();?>/assets/plugins/datatables/dataTables.buttons.min.js"></script>

代码: 不,当我用这个数据表创建一个新的时,所有功能都不起作用..

echo "<table id='datatable-buttons' class='table display2 table-striped table-bordered'>";
    echo "<thead>";
    echo "<tr>";
    echo "<th>No.</th>";
    echo "<th>Itemset</th>";
    echo "<th>Jumlah</th>";
    echo"</tr>";
    echo "</thead>";
    echo "<tbody>";
    foreach ($item_array as $ia_key => $ia_value) 
    {
        //$theitems = explode('|',$ia_key);
        for($x = 0; $x < count($ia_key); $x++) 
        {
            if (($ia_value>=$support))
            {
                $no++;
                echo "<tr>";
                echo "<td> $no </td>";
                echo "<td> $ia_key </td>";
                echo "<td> $ia_value </td>";
                $z++;
                echo "</tr>";
            }
        }
    }
    echo "</tbody>";
    echo "</tr>";
    echo "</table>";

【问题讨论】:

  • 我可以看看你是如何在 js 中初始化数据表的吗?
  • Docs 不工作?
  • 您需要确保您的表格具有唯一的 ID
  • 该链接将不起作用,因为您将类名设置为 display2。 DataTables 需要类名“display”
  • 我收回,你正在使用引导程序

标签: javascript php css codeigniter codeigniter-3


【解决方案1】:

这是一个最简单的生活示例。

两个数据表:

$(document).ready(function() {
    $('table.display').DataTable();
} );
<script src="https://cdn.datatables.net/v/bs-3.3.7/jq-2.2.4/jszip-3.1.3/pdfmake-0.1.27/dt-1.10.15/af-2.2.0/b-1.3.1/b-colvis-1.3.1/b-flash-1.3.1/b-html5-1.3.1/b-print-1.3.1/cr-1.3.3/fc-3.2.2/fh-3.1.2/kt-2.2.1/r-2.1.1/rg-1.0.0/rr-1.2.0/sc-1.4.2/se-1.2.2/datatables.js"></script>
<link href="https://cdn.datatables.net/v/bs-3.3.7/jq-2.2.4/jszip-3.1.3/pdfmake-0.1.27/dt-1.10.15/af-2.2.0/b-1.3.1/b-colvis-1.3.1/b-flash-1.3.1/b-html5-1.3.1/b-print-1.3.1/cr-1.3.3/fc-3.2.2/fh-3.1.2/kt-2.2.1/r-2.1.1/rg-1.0.0/rr-1.2.0/sc-1.4.2/se-1.2.2/datatables.css" rel="stylesheet"/>
<table  id="" class="display table table-striped table-bordered">
    <thead>
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Edit</th>
        <th>Delete</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td>1</td>
        <td>john</td>
        <td>Edit</td>
        <td>Delete</td>
    </tr>
    </tbody>
</table>


<table  id="" class="display table table-striped table-bordered">
    <thead>
    <tr>
        <th>ID</th>
        <th>type</th>
        <th>Edit</th>
        <th>Delete</th>
    </tr>
    </thead>
    <tbody>
    <!-- Retrieve data -->
    <tr>
        <td>1</td>
        <td>Male</td>
        <td>Edit</td>
        <td>Delete</td>
    </tr>
    </tbody>
</table>

还有更多说明:

https://jsfiddle.net/5qb7optx/2/

问候,

【讨论】:

    【解决方案2】:

    数据表HTML代码:

    表 1:

    <table id="" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
           <th>your table head</th>
           <th>your table head</th>
        </tr>
    <tbody>
    // Your table body
    </tbody>
    

    表 2:

    <table id="" class="display" cellspacing="0" width="100%">
    <thead>
        <tr>
           <th>your table head</th>
           <th>your table head</th>
        </tr>
    <tbody>
    // Your table body
    </tbody>
    

    数据表脚本:

    $(document).ready(function() {
        $('table.display').DataTable();
    } );
    

    通过使用 .display 类,您可以将其用于多个 data-tables。只需给所有桌子上相同的课程。

    这里是多个数据表的帮助链接:multiple_tables

    【讨论】:

      【解决方案3】:

      您可以使用数据表初始化程序两次,并使用您的表的 id,如下所示:

        $('#datatable-id1').dataTable(); //replace id with your first table's id
        $('#datatable-id2').dataTable(); //replace id with your second table's id
      

      【讨论】:

        【解决方案4】:

        你应该编写 jQuery 来初始化 DataTable。

        $(document).ready(function() {
            $('#datatable-buttons').DataTable();//replace id as per your need
            $('#datatable-buttons2').DataTable();//replace id as per your need
        });
        

        【讨论】:

        • 除非这会导致“Cannot reinitialise DataTable”错误并且是不允许的。见datatables.net/manual/tech-notes/3
        • 没关系,如果我确保每次都在 不同的 表格元素上调用它,它似乎可以工作:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-22
        • 2021-08-02
        • 1970-01-01
        • 2016-09-11
        • 2020-02-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多