MW211 EXIT

devlog
jQuery/データのエクスポート
2022年05月13日
以下のような感じで。

【jQuery(JavaScript)】
┌──────────────────────────────────────┐
│$(':button').on('click', function() {                                       │
│    $.ajax({                                                                │
│            url         :URLを指定,                                         │
│            type        :'POST',                                            │
│            data        :{},                                                │
│            dataType    :'text',                                            │
│            timeout     :30000                                              │
│        })                                                                  │
│        .done(function(data, status, xhr) {                                 │
│            if (data) {                                                     │
│                const bom = new Uint8Array([0xEF, 0xBB, 0xBF]);             │
│                const blob = new Blob([bom, data], {'type':'text/csv'});    │
│                $('<a></a>', {                                              │
│                    'href'      :window.URL.createObjectURL(blob),          │
│                    'download'  :'エクスポート.csv',                        │
│                    'target'    :'_blank'                                   │
│                })[0].click();                                              │
│            } else {                                                        │
│                alert('エラー');                                            │
│            }                                                               │
│        })                                                                  │
│        .fail(function(xhr, status, error) {                                │
│            alert('エラー');                                                │
│        });                                                                 │
└──────────────────────────────────────┘
  API(のURL)を指定して、CSVデータを返してもらう。
  そして、それに先頭BOMをつけて、UTF-8形式でダウンロードする形にする。

【PHP】
┌──────────────────────────────────────┐
│echo '1,2,3';                                                               │
└──────────────────────────────────────┘
  API側では、CSVデータを返す。
分類:jQuery