###前提・実現したいこと
html javascript phpで画像や動画を削除する機能を作っています
promiseで画像・動画を削除する処理(ajaxで画像のソース(相対パス)を送ってphpのunlink()で削除)が終わったら更新をしたいのですが、
promise.then(() => reload(true));が動きません
promise.then(() => console.log('動いた'));でログがでるか確認したところ何も出ませんでした
javascriptの後半にあります
###該当のソースコード
javascript
1$(function(){ 2 //フォームデータを一時保存する配列 3 var formDataArray = [] 4 //クリックした時にデータ送信 5 $('#delete').on('click',function(elem){ 6 //チェックボックス 7 var im = document.forms.fm.Checkbox; 8 var cnt = 0; 9 // Array オブジェクトを作成する 10 var img_id = new Array(); 11 //チェックボックスの数だけ繰り返す 12 for(var i = 0; i < im.length; i++){ 13 //チェックボックスにチェックがついてるか 14 console.log(im[i]); 15 console.log(im[i].checked); 16 if(im[i].checked){ 17 //チェックボックスのvalue(imgのidが入っている)をimg_idにプッシュ 18 console.log(im[i].value); 19 img_id.push(im[i].value); 20 //チェックついてる数を数える 21 cnt++; 22 } 23 } 24 //チェックついてる数だけ繰り返す 25 console.log(cnt); 26 for(var i = 0; i < cnt; i++){ 27 var formData = new FormData(); 28 console.log(img_id[i]); 29 var id = img_id[i]; 30 console.log(document.getElementById(img_id[i])); 31 //チェックのついている画像のソースをformDataにappend 32 formData.append('path',document.getElementById(img_id[i]).getAttribute("src")); 33 //formDataをArrayにpush 34 formDataArray.push(formData); 35 } 36 //入ってる配列を繰り返す 37 const promise = new Promise((resolve, reject) => { 38 formDataArray.forEach(function(formData){ 39 //画像のsrcが入っているか確認 40 console.log(formData.get("path")); 41 //ajaxで送る 42 deleteFiles(formData); 43 }); 44 }); 45 promise.then(() => console.log('動いた')); 46 promise.then(() => reload(true)); 47 }); 48 var deleteFiles = function(formData){ 49 //ajaxで送信 50 $.ajax({ 51 //POSTで送信 52 type: 'POST', 53 //ajaxが適切なcontentTypeに自動変換するのを防ぐ 54 contentType: false, 55 //データを文字列に自動変換するのを防ぐ 56 processData: false, 57 //送信先 58 url: './delete.php', 59 //送るデータ 60 data: formData, 61 //通信成功時に呼ばれる 62 //data 接続先PHPファイルが出力したデータ 63 success: function(data,dataType) { 64 console.log("成功" +data); 65 }, 66 //通信失敗時に呼ばれる 67 //XMLHttpRequest.status HTTPステータス 68 //textStatus timeout、error、parsererror等の文字列 69 //errorThrown 例外情報 70 error: function(XMLHttpRequest, textStatus, errorThrown){ 71 console.log(XMLHttpRequest + " : " + textStatus + " : " + errorThrown); 72 } 73 }); 74 75 } 76 77});
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。