我有一个使用直接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?如果是这样,我怎么能这样做?
答案 0 :(得分:0)
您可以通过javascript来简化表格创建,正如我在此页面上所描述的那样:Generate another HTML table in JQuery to type in more hours to be calculated
当您使用ajaxed数据更新它时,您基本上使用for循环重写整个表,并在每行中添加for循环。
这是否满足您的需求?