前提
ajaxの戻り値をうまく取得できないで困っています。
ajaxは該当期間にデータがあるか否かをチェックし、有る場合は処理を続け、
無い場合は処理を中断しようというものです。
text形式で取得した response ですが、「yes」または「no」が入っています。
ところが「yes」または「no」をうまく判定できないで困っています。
ここで、テキストとしてちゃんと取得しているかどうかを確認するために、間に
「yagisan」という変数をかまして試したところ。
コンソールに以下の結果が表示されました。
【データが無いとき】
response================no
yagisan================no
noでしたよ================
【データが有るとき】
response================yes
yagisan================no
noでしたよ================
データが有るときは
response================yes
yagisan================yes
yesでしたよ================
なならなければいけないはずですが、なぜこのようなことになるのかさっぱりわかりません。
ここのところajaxの非同期処理にイジメられて翻弄されています。
どなたか教えて下さい。よろしくお願いします。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲▲機能を動作するようにする
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
javascript
$.ajax({ type: "POST", url: "/meisaiexistcheckbyperiod", data: {"startDate":startDate, "endDate":endDate, "mode":mode}, dataType: 'text', // 通信成功時の処理 }).done(function(response) { console.log("response================" + response); let yagisan; if(response=="yes"){ yagisan = "yes"; }else{ yagisan = "no"; } console.log("yagisan================" + yagisan); if(yagisan=="yes"){ console.log("yesでしたよ================"); if(window.confirm("指定期間 " + startDate + " ~ " + endDate + " のモニタリストを発行します。")){ // ここで実行 //return true; }else{ // 処理中断 return false; } }else{ console.log("noでしたよ================"); //window.alert("指定の期間に売上明細データはありませんでした。"); // 処理中断 return false; } // 通信失敗時の処理 }).fail(function() { alert("明細データのチェック検索ができませんでした。管理者にご連絡下さい。"); // 通信の成功失敗に関わらず必ず行う処理 }).always(function() { });
### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー