質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

解決済

2回答

713閲覧

1回だけエラーアラートを出す方法

tk68716

総合スコア24

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

0クリップ

投稿2021/11/11 09:37

お世話になっております。

現在、とあるECサイトの案件に携わっています。
商品を購入したときにAjaxでカート内の購入個数をもとに、
在庫数チェックをするような処理を行っています。

イメージ
イメージ説明

上のイメージのように商品をかごに追加して購入個数を変更したときに、
Ajaxで商品在庫数とその商品の購入個数をチェックして
在庫数<購入個数であればエラーアラートを出力するというような処理を行っています。

実現したいこと
一度、チェックしてエラーアラートを出した商品に関しては、
また購入個数を変更して在庫が超過していたとしてもアラートは出さないというような処理にしたいです。
どなたかよい方法などございましたら、お力添えの方をよろしくお願いします。

やってみたこと
・Sessionに情報をもたせる
→他の画面で、そのSession情報を初期化する必要があり、改修範囲が広がる。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

Sessionにもたせるのはやめて、Javascript側で処理するよういたしました。
・簡単に処理の説明
サーバー側で在庫チェック

在庫チェックに引っかかったs商品情報をresponseで画面側に返す。

javascriptのグローバル変数にデータを保持させておく
その値とレスポンスで返却された商品データを比較してアラートを出す出さないの判定を行う

投稿2021/11/21 05:16

tk68716

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

・Sessionに情報をもたせる

→他の画面で、そのSession情報を初期化する必要があり、改修範囲が広がる。

これが一番妥当だと思います。
DBにて、ユーザーのレコードに対して、
カラムを用意し、閲覧管理する方法もありますが、
(今回の場合、アラート閲覧テーブルを新たに用意し、各テーブルに紐づけた方がいいかもしれない)
そちらの方が改修が手間になると思います。

また、JSのクッキーで管理する方法もありますが、
バックエンドがフロントエンドになっただけで、手間は変わらないものと思います。

投稿2021/11/11 10:09

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tk68716

2021/11/21 05:10

お返事が遅れて申し訳ございません。 こちら自己解決いたしました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問