如何在PHP中使用TableTools扩展来获取dataTables

时间:2014-07-08 19:40:42

标签: php jquery codeigniter datatable

我在codeigniter中查看了我正在尝试使用datatables和TableTools扩展来增强它。我正在使用1.94版数据表。根据{{​​3}},需要表格工具2.1.5版。我已经包括了这个。我试图按照R shiny dataTables with TableTools and other extensions和上面的文章来使TableTools工作,但到目前为止还没有TableTools工具栏的迹象。我做错了什么?

这是我的代码:

 <table id="myDataTable">
        <thead>
            <tr>
                <th>ROW</th>
                <?php foreach($keys as $key): ?>
                <th><?php echo $key; ?></th>
                <?php endforeach; ?>


            </tr>

        </thead>      
        <tbody>

           <?php $i=1; foreach($fulltable as $row): ?>
               <tr id="<?php echo $i ?>">
                <td><?php echo $i; ?></td>    

             <?php foreach($row as $cell): ?>
                <td><?php echo $cell; ?></td>
                <?php endforeach; ?>
                </tr>
                <?php $i++; endforeach;  ?>

                  </tbody>
        </table>

 <!--jQuery--> 
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>


      <!--DataTables CSS--> 
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">


 <!--DataTables--> 
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script>

<!--DataTable tools--> 
<script type="text/javascript" charset="utf8" src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/TableTools.min.js'></script>
<script type="text/javascript" charset="utf8" src='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/ZeroClipboard.min.js'></script>
<link rel="stylesheet" type="text/css" href='//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/css/TableTools.min.css'>


    <script language="javascript" type="text/javascript">

            $(document).ready(function () {
                $('#myDataTable').dataTable( {
                    "dom": 'T<"clear">lfrtip',
                    "tableTools": {
                        "sSwfPath": "//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf",
                    }
                });
            });

        </script>

1 个答案:

答案 0 :(得分:1)

TableTool插件是一个Flash插件,因此客户端/浏览器需要安装闪存。另外,检查您在&#34; tableTools&#34;中指定的路径。在初始化对象中。它错过了一个&#39; http:&#39;字首。它应该是:

&#34; sSwfPath&#34;:&#34; http://cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf&#34;

编辑:(另见下面的评论)

只是为了更好地澄清 而不是:

ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js

使用

cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js

而不是:

cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/TableTools.min.js

使用

cdn.datatables.net/tabletools/2.2.1/js/dataTables.tableTools.min.js

而不是:

cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/css/TableTools.min.css

使用

cdn.datatables.net/tabletools/2.2.1/css/dataTables.tableTools.css

所以javascript部分应该是:

 <!--jQuery-->
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>


<!--DataTables CSS-->
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">


<!--DataTables-->
<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js"></script>

<!--DataTable tools-->
<script type="text/javascript" charset="utf8" src='http://cdn.datatables.net/tabletools/2.2.1/js/dataTables.tableTools.min.js'></script>
<script type="text/javascript" charset="utf8" src='http://cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/js/ZeroClipboard.min.js'></script>
<link rel="stylesheet" type="text/css" href='http://cdn.datatables.net/tabletools/2.2.1/css/dataTables.tableTools.css'>

您可能还想检查要链接的ZeroClipboard。这也可能是错误的版本。