Jquery下载结果文件

时间:2014-01-07 13:10:32

标签: javascript jquery html datatables

我需要创建一个按钮,点按“加载”,然后使用用户创建的表格中的结果发出电子表格。我将代码作为链接工作,但不作为按钮。我该如何解决这个问题?

这是创建表格的脚本,并将结果从指定链接的电子表格中吐出:

makeTable = function(query) {
    var q = encodeURIComponent(query);
    $('#example').dataTable({
        "oLanguage": {"sSearch": "Filter results:"},
        "bProcessing": true,
        "bDestroy":true,
        "sAjaxSource": $.sprintf('http://...?q=%s',q),
        "aoColumns":[
            {"mData":"id", "sWidth": "20px", "sTitle":"ID"},
            {"mData":"chamber", "sWidth": "10px", "sTitle":"Chamber"},
            {"mData":"date", "sWidth": "85px", "sTitle":"Date"},
            {"mData":"yea","sTitle":"Vote","sWidth":"80px"},
            {"mData":"descriptionShort", "sWidth": "200px","sTitle":"Description"}
        ],
        "fnRowCallback": function( nRow, aData, iDisplayIndex ) {
            $('td:eq(0)', nRow).html($.sprintf('<a onclick="setviz(\'%s\');setview(\'visualize\')">%s</a>',aData['id'],aData['id'])).attr("title", "Click to explore this vote");
            $('td:eq(3)', nRow).html($.sprintf('%s-%s', aData['yea'], aData['no']));
            $('td:eq(4)', nRow).attr("title",aData['description']);
            resultids.push(aData['id']); // build vector vote ids (nothing to do with the table)
            return nRow;
        },  
        "fnInitComplete": function(oSettings, json) {
            $('#downloadExcel').attr('href','http://...?ids=' + resultids.join()); // Make download link
        }
    });                
}

在HTML的正文中,我有以下代码:

<div id='results'>
  <div class="jumbotron">   
    <div class="container special">
      <div class="table">
        <table id="example" class="table table-striped"></table><br/>

        <a id="downloadExcel" href="">Download</a><br></br>

        <a onclick="oper_executar('downloadExcel')" class="btn btn-primary btn-lg"  role="button">Download</a><br></br>

        </div><!-- table -->
      </div><!-- container -->
    </div><!-- jumbotron -->    
  </div><!-- results -->

链接完全符合我的预期,但按钮却没有!

帮助?

1 个答案:

答案 0 :(得分:1)

试试这个

<button id="downloadExcel">Download</button>

将您的链接更改为按钮。

"fnInitComplete": function(oSettings, json) {
            $('#downloadExcel').click(function(){
                  window.location = 'http://...?ids=' + resultids.join();
            })      
}

将网址设置为window.location将触发文件下载。您也可以尝试window.location.href