【问题标题】:How to get dataTables working with TableTools extension in PHP如何让 dataTables 在 PHP 中与 TableTools 扩展一起工作
【发布时间】:2014-07-08 19:40:42
【问题描述】:

我在 codeigniter 中有视图,我正在尝试使用数据表和 TableTools 扩展来增强它。我正在使用 1.94 版的数据表。根据R shiny dataTables with TableTools and other extensions 的说法,需要2.1.5 版的表格工具。我已经包括了这个。我正在尝试关注http://datatables.net/extensions/tabletools/ 和上面的文章以使 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>

【问题讨论】:

    标签: php jquery codeigniter datatable


    【解决方案1】:

    TableTool插件是一个flash插件,所以客户端/浏览器需要安装flash。此外,请检查您在初始化对象的“tableTools”中指定的路径。它缺少“http:”前缀。应该是:

    "sSwfPath": "http://cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf"

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

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

    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。这也可能是错误的版本。

    【讨论】:

    • 感谢您回复我。我已经按照您的建议进行了更改,但仍然看不到工具栏的迹象,根据adobe.com/software/flash/about安装了flash
    • 好的,您似乎连接到错误版本的 javascript 资源。如果你用这些替换:
    • 再次感谢 skarist,我做了您推荐的更改。工具栏出现,但除打印外,其他按钮均无效。我在 firebug 中看不到错误
    • 我会问这个作为后续问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多