勉強したことのメモ

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

  関連記事

PHPとajaxでチャットの作成

■ソース ・index.php <? error_reporting(E_ ...

jQueryでimgタグのsrcを変える

やりたかった事はイベントに応じてimgタグの src内のURLを変更。attrを ...

formで複数選択可能なセレクトメニュー(プルダウン)を実装する方法(select2)

フォームで複数選択可能なセレクトボックス(プルダウン)を実装したい。ただHTML ...

jQueryで画像が存在すれば表示、なければノーイメージ画像を表示

やりたかった事は以下の通り。 ・画像のURLはcode.jpgみたいになってる ...

jQueryで電話番号チェック

やりたかったことはjavascriptかjQueryで 電話番号のバリデート。 ...