数据表在drawcallback

时间:2017-09-08 09:11:14

标签: javascript php ajax datatables

我有一个使用直接javascript / html生成的数据表。数据是服务器端处理的(PHP),并使用for循环生成行。这可能与答案有关,也可能与之无关。

<tbody>
<?php if (count($data)): 
foreach ($data as $key => $value): ?>

    <tr>
     <td><?php echo $value['value1'] ?>></td>
     <td><?php echo $value['value2'] ?></td>
     <td><?php echo $value['value 3'] ?></td>               
    </tr>
 <?php 
endforeach;
endif; ?>
</tbody>

我使用了行分组,以便根据特定的列值对结果进行分组。例如,如果第2列是日期,则具有相似日期的所有行将在具有该日期的单个标题下分组。我已经使用下面的代码实现了这一点,它的工作非常好。

"drawCallback": function ( settings ) {
  var api = this.api();
  var rows = api.rows( {page:'current'} ).nodes();
  var last=null;
  api.column(4, {page:'current'} ).data().each( function ( group, i ) {
   if ( last !== group ) {
   $(rows).eq( i ).before(
       '<tr class="group"><td colspan="5"><strong>'+group+'</strong></td></tr>'
     );

     last = group;
    }
 } );
 },

我的问题是我需要注入更多彼此相同的行,并且会显示在我上面创建的每个组标题下。这些行的数据将由服务器端PHP / SQL生成。

我已经知道以下代码允许我在每个组的现有行下手动插入行。

if ( last == group ) {
  $(rows).eq( i ).after(
  //insert html here which will create a new row manually                   
  );

}
last = group;

如何检索服务器端数据以进行注入?是否可以从drawCallback中调用ajax?如果是这样,我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以通过javascript来简化表格创建,正如我在此页面上所描述的那样:Generate another HTML table in JQuery to type in more hours to be calculated

当您使用ajaxed数据更新它时,您基本上使用for循环重写整个表,并在每行中添加for循环。

这是否满足您的需求?