我正在尝试在我的基于cakePHP的网站上实现jquery datatable,但它不会加载。这个网站已经开发了一半,从我看到它的方式来看,js'是通过位于_head.inc.ctp
文件夹中的views/layouts
文件加载的,我在libs文件夹中添加了datatables库。是webroot/js/libs
并将其加载到_head.inc.ctp
文件中。
假设我有这个: 我的控制员:
var $helpers = array(
'Form',
'Html',
'Javascript'
);
//my method
function dataTable_example($id=null){
$details = $this->Detail->find("all");
$this->set('details', $details );
}
我的观点:
<div>
<?php echo $javascript->link('libs/jquery.dataTables.js'); ?>
<script>
$(document).ready(function(){
$('#js-datatable').dataTable();
});
</script>
<h2><?php echo __l('Tickets');?></h2>
<div>
<table id="js-datatable">
<tr>
<th>some heading 1</th>
<th>some heading 1</th>
<th>some heading 1</th>
</tr>
<?php
if (!empty($details)){
foreach ($details as $detail):
?>
<tr>
<td><?php echo $detail['Detail']['id'];?></td>
<td><?php echo $detail['Detail']['created'];?></td>
<td><?php echo $detail['Detail']['ticket_detail'];?></td>
</tr>
<?php
endforeach;
}else{
?>
<tr>
<td>No Data Found</td>
</tr>
<?php }?>
</table>
</div>
</div>
我甚至使用通常的调用对其进行了硬编码,并使用firebug检查它是否已加载脚本,并且根据firebug,它已加载,所以我无法看到是什么让脚本失败了我的表。 / p>
我错过了一些步骤吗?请帮忙
感谢
答案 0 :(得分:3)
您没有将thead和tbody元素作为required by the datatables script
答案 1 :(得分:1)
您应该在控制器中使用find函数并将数组传递给视图,并在视图中写入..不要只是将表保留为空