2

以下のtest.phpファイルコードでjQueryを「GET」と呼んでいます。

スクリプトを取得して、結果のtest.iniファイルに[名前を付けて保存]ダイアログを表示し、ローカルに保存できるようにしようとしています。ただし、結果をjQueryにエコーバックすることはできますが、[名前を付けて保存]ダイアログが表示されないようです。

更新:以下のソリューションのおかげで、$。getをwindow.location.replaceに変更しました。

$('#test').click(
    function()
    {
        //$.get('<?php echo get_bloginfo('template_directory') ?>/test.php');
        window.location.replace("<?php echo get_bloginfo('template_directory') ?>/test.php");

    }
);
4

3 に答える 3

8

[名前を付けて保存]ダイアログを表示するajaxリクエストを取得することはできませんが、ページに非表示のiframe要素を挿入し、そのiframeのソースをユーザーがダウンロードするURLに設定することができます。出来上がり、名前を付けて保存があります。

コピーアンドペーストの例を次に示します。

$('a#linky').click(function(){
  var iframe = document.createElement("iframe"); 
  iframe.src = 'http://example.com/branding.zip'; 
  iframe.style.display = "none"; 
  document.body.appendChild(iframe);
  return false;
});
于 2011-07-14T20:36:41.010 に答える
3

このためにAJAXは必要ありません。問題のphpに移動し、そのphpで使用するだけです

header('Content-disposition: attachment;filename=whatever.dat');

これにより、[名前を付けて保存]ダイアログボックスがポップアップ表示され、元のページに留まります。

于 2011-07-14T20:37:41.920 に答える
1

AJAXリクエストはファイルダウンロードダイアログを生成できません。代わりに、ダウンロードターゲットを新しいウィンドウで開くことを検討してください。

于 2011-07-14T20:35:12.583 に答える