1

ファイルの種類を選択するドロップダウンがあり、選択した内容に応じてファイルを生成しheader、php を使用してファイルを強制的にダウンロードするページで起動します。ここにjQueryがあります。

$('#exportdropdown').change(function(){
var searchinput = $('#searchinput').val();
var maxrec = $('#navdropdown option:selected').text();
    $('.loadCont').fadeIn();
    if($('#importbutton').hasClass('clickedButton')){
        $.get('export.php', {filter: 'import', maxrecords: maxrec, type: 'xls'});
    }else{
        $.get('export.php', {filter: 'export', maxrecords: maxrec, type: 'xls'});
    }
    $('.loadCont').delay('600').fadeOut();
});

現在、テストのために型を強制していますが、期待どおりに動作していないようです。以下のデータでファイルをアドレス指定するとexport.php?filter='import'&maxrecords=15&type='xls'、ダウンロードが正常に実行されます。jQueryメソッドを使用していないだけです。より経験豊富な人にとって際立っている明白なものはありますか?

4

2 に答える 2

3

ここでは Ajax は無意味です。ファイルをブラウザにプッシュするリンクを要求するだけです。試す:

window.location.href = "export.php?filter=" + filter + "&maxrecords=" + maxrecords + "&type=" + type;
于 2012-04-12T15:30:19.080 に答える
0

私のプロジェクトのいくつかでは、似たようなことをしていますが、まったく異なっています:)。

ドロップダウンをクリックすると、新しいウィンドウが開き、karim79コードが実行されました(たとえば、ボディロードで)。それで

  1. ドロップダウン項目をクリックします
  2. 次のような適切なパラメータで新しいウィンドウを開きます。
    window.open ("newindow.html?filter=" + filter + "&maxrecords=" + maxrecords + "&type=" +  type"); 
//this is not tested, but you got the point
  1. body の onload イベントで、次のいずれかを実行します。
window.location.href = "export.php?filter=" + filter + "&maxrecords=" + maxrecords + "&type=" + type";

または似たようなもの。

于 2012-04-12T15:40:20.560 に答える