dataTables,嵌套表foreach

时间:2017-07-13 02:40:57

标签: php datatables

我有数据表的问题,它正在工作,但它不能正常工作.. 我有下一个代码:

<table id="dt_basic" class="table table-striped table-bordered table-hover" width="100%">
    <thead>
        <tr>
            <th>Codigo PT</th>
            <th><i class="text-muted hidden-md hidden-sm hidden-xs"></i>Producto Terminado</th>
        </tr>
    </thead>
    <tbody>
        <?php
        foreach ($registros as $reg)
        {
        ?>
             <tr style="border-bottom:2px solid #000;background: #cee8ff;">
                <td><?php echo $reg -> id_codigo;?></td>
                <td><?php echo utf8_encode($reg ->id_product_term);?></td>
            </tr>
            <?php
            $AllRows = $_interfaz -> get_all($reg -> id_interfaz);

            foreach ($AllRows as $row)
            {
            ?>
                <tr>
                    <td><b style="font-size:20px;">—</b></td>
                    <td><?php echo $row -> id_product_term;?></td>
                </tr>
        <?php
            }
        }
        ?>
    </tbody>
</table>

它有一个forearch(){forearch(){}}两个foreach,一个嵌套的foreach。 问题是数据表最后将第一个foreach结果和嵌套(SECOND)foreach的结果放在开头,如下所示:

第二个foreach结果
第二个foreach结果
第二个foreach结果
第一个foreach结果
第一个foreach结果
第一个foreach结果

为什么datable如上所述组织表格?

为什么不这样做?:

第一个foreach结果
第二个foreach结果
第一个foreach结果
第二个foreach结果
第一个foreach结果
第二个foreach结果

因为一个foreach是嵌套的..

我该如何解决?

我的js脚本是:

$('#dt_basic').dataTable({
"sDom": "<'dt-toolbar'<'col-xs-12 col-sm-6'f><'col-sm-6 col-xs-12 hidden-xs'l>r>"+
                    "t"+
                    "<'dt-toolbar-footer'<'col-sm-6 col-xs-12 hidden-xs'i><'col-xs-12 col-sm-6'p>>",
"autoWidth" : true,
"oLanguage": {
                "sSearch": '<span class="input-group-addon"><i class="glyphicon glyphicon-search"></i></span>'
            }});

感谢。

1 个答案:

答案 0 :(得分:0)

  

为什么datable如上所述组织表格?

因为dataTables默认将行排序为[[0, 'asc']]。这就是为什么你的所有行

<tr><td><b style="font-size:20px;">—</b></td>...</tr>
首先显示

。有一个名为rowGroup的扩展名,其目的正是您要做的。包括rowGroup来源,然后添加一个额外的不可见列以进行分组:

<tr style="border-bottom:2px solid #000;background: #cee8ff;">
   <td><?php echo $reg -> id_codigo;?></td>
   <td><?php echo $reg -> id_codigo;?></td>
   <td><?php echo utf8_encode($reg ->id_product_term);?></td>
</tr>
...
<tr>
   <td><?php echo $reg -> id_codigo;?></td>
   <td><b style="font-size:20px;">—</b></td>
   <td><?php echo $row -> id_product_term;?></td>
</tr>

使新组列不可见,rowGroup为列:

$('#dt_basic').dataTable({
  columnDefs: [
    targets: 0, visible: false }
  ],
  rowGroup: {
    dataSrc: 0
  }
  ...
})

以下是在不可见列上使用rowGroup的示例 - &gt;的 http://jsfiddle.net/8r88gsfk/