【问题标题】:DataTables TableTools plugin - How to configure sSwfPath path in Codeigniter?DataTables TableTools 插件 - 如何在 Codeigniter 中配置 sSwfPath 路径?
【发布时间】:2013-03-28 14:45:00
【问题描述】:

我的previous question 重新发布,因为我没有得到任何满意的答案

问题如下:

我在 JSBin http://live.datatables.net/aqowib/2 中提供了我的代码,我无法正确链接到 sSwfPath。我在我的应用程序中使用 codeiginter,所以我尝试按如下方式加载文件:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script src="http://<?php base_url(); ?>/assets/js/jquery.dataTables.js" type="text/javascript"></script>
<script src="http://<?php base_url(); ?>/js/jquery.dataTables.columnFilter.js" type="text/javascript"></script>
<script src="http://<?php base_url(); ?>/media/js/ZeroClipboard.js" type="text/javascript"></script>
<script src="http://<?php base_url(); ?>/media/js/TableTools.js" type="text/javascript"></script>

我的脚本标签包含以下代码:

$(document).ready(function(){
    var oTable = $('#datatables').dataTable({
        "sPaginationType":"full_numbers",
        "sDom": 'Tlfrtip',
        "oTableTools": {
            "sSwfPath": "<?php base_url();?>/media/swf/copy_cvs_xls_pdf.swf"
        },
        "sScrollX": "100%",
        "bScrollCollapse": true,
        "bAutoWidth": true,
        "aaSorting":[[0, "asc"]],
        "bJQueryUI":true
    }).columnFilter({
        aoColumns: [ null,
                     null,
                     { type: "select", values: [ 'male', 'female']  },
                     null,
                     null,
                     null,
                     null,
                     { type: "select", values: [ '1', '2', '3', '4', '5', '6', '7','8','9','10']  },
                     { type: "select", values: [ 'A', 'B', 'C']  },
                     null,
                     { type: "select", values: ['P', 'A'] },
                     null,
                     null,
                     null
            ]
    });
});

每次我收到 404 错误,提示无法加载 SWF 文件 - 请检查 SWF 路径

请帮助我我哪里错了? 提前致谢。

【问题讨论】:

    标签: codeigniter datatables tabletools


    【解决方案1】:

    啊,解决了!!

    您只需要在 TableTools.js 文件中配置 sSwfPath URL,即

    更改 TableTools 初始化的默认设置

    我去:

    TableTools.DEFAULTS = {
        "sSwfPath":         "http://localhost/codegen/media/swf/copy_cvs_xls_pdf.swf", <----------------- HERE IS WHERE I GOT STUCK 
        "sRowSelect":       "none",
        "fnPreRowSelect":   null,
        "fnRowSelected":    null,
        "fnRowDeselected":  null,
        "aButtons":         [ "copy", "csv", "xls", "pdf", "print" ]
    };
    

    谢谢:-)

    【讨论】:

    • 这是否意味着您的 &lt;?php base_url();?&gt; 返回了错误的值?
    • 亲爱的 NealCaffrey,我们如何在 laravel 4.2 页面中使用 sSwfPath?请给建议
    • 虽然这可能解决了您的问题,但这并不是导致问题的原因。你忘了使用回声,所以 berbt 是对的。 &lt;?php base_url();?&gt; 部分不返回值。请参阅 Vishav B Kaith 的答案。
    • 附加:只有在您的 PHP 文件中有 javascript 代码时,它才会起作用。如果没有,您必须通过将其分配给全局 Javascript 变量来使其可用于您的 javascript 文件,如下所示:echo '&lt;script type="text/javascript"&gt; window.baseUrl = ' . base_url(); 现在您可以使用 javascript 文件中的 window.baseUrl 访问它。
    【解决方案2】:

    无需写完整路径 只需在 base_url 之前放置 echo :) 改变

    <?php base_url();?>
    

    <?php echo base_url();?>
    

    【讨论】:

    • 这确实提供了问题的答案。作者问他错在哪里,这就是他错的地方。这几乎可以肯定地解决了他的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多