勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

jQueryでAjax通信したデータをPHPで受け取り、zip化したファイルをダウンロードさせる方法

  jQuery JavaScript

jQueryのAjaxで何らかのデータをPHP側に送信し、PHP側で当該データをファイルに書き込んだ上でzipファイル化し、ブラウザからダウンロードさせたい。PHP経由でzipファイルダウンロードは以前に行ったが、さらにAjax経由というのは対応したことが無かったので以下にソースコード等をメモ。

 

対応方法

PHP側

PHP側については以前にメモした方法でzipファイルを出力させること。Ajaxから受信したデータは$_REQUEST等で取り扱うと良い。

Ajax側

【PHP側のURL】【Ajaxで送信したいデータ】【ダウンロードさせたいファイル名】部分は適宜変更すること。

$('#download').on('click', function(){
    $.ajax({
        type: 'post',
        url: '【PHP側のURL】',
        data: {【Ajaxで送信したいデータ】},
        xhrFields: { responseType: 'blob' }
    }).done(function (response, _textStatus, _jqXHR) {
        $('<a>', {
            href: URL.createObjectURL(new Blob([response], { type: response.type })),
            download: "【ダウンロードさせたいファイル名】",
        }).appendTo(document.body)[0].click();
    });

    return false;
});

 - jQuery JavaScript

  関連記事

Javascript / jQueryにて特定の要素内の文字数が〇文字以上の場合に丸める方法

サイトの特定の要素内の文字数が〇文字以上の場合に「コンテンツコンテ……」のように ...

フォームの入力内容をjQueryで取得し、本文として設定した上でメーラーを起動させる方法

formで何らかを入力してもらいボタンをクリックするとメーラーが開き、先ほど入力 ...

JavaScriptで数値のカウントアップ及びカウントダウン

JavaScript(一部jQuery)で数値のカウントアップ及びカウントダウン ...

pjaxについてのメモ

ずっと気になっていたpjaxについてのメモ。 ■参考サイト http://chi ...

jQueryでチェックボックスの全チェック&チェック解除する方法

フォームのチェックボックスで「全てにチェックを入れる」「全てのチェックを外す」と ...