1

私はショッピング Web サイトを持っており、javascript を使用して商品をカートに追加しています。カートに追加をクリックするたびに、カートを表す div にアイテムの名前が表示されます。各ページにカートの内容を保持したいので、私がしたことは次のとおりです。

$("#cartlink").attr("href", "cart.php?app="+tab+"")

「タブ」は、カート内のすべてのアイテムを含む配列です。次に、GET を使用して、cart.php ページのカートの要素を取得します。しかし、私の問題は、JSを使用してカートにアイテムを追加するため、ユーザーがcart.php?appリンクをクリックせずにページを変更すると、タブが消去され、「タブ」を回復する方法がないことです。ユーザーが cart.php リンクをクリックすると、GET を使用してコンテンツをセッションに保存し、それをすべてのページで使用できます。

そのため、ユーザーが cart.php をクリックしないことにした場合に、カートの内容を記憶する方法が必要になります。

ありがとう!

4

3 に答える 3

0

あなたが何をしているのか完全にはわかりませんがbeforeunload、ページがアンロードされる(場所が変わる)前に呼び出されるウィンドウのイベントにリスナーをバインドできるようです。これは、Webサイト(ポップアップ広告)が「本当に離れますか」ダイアログを実現する方法です。

例:

window.document.addEventListener('beforeunload', function(event) {
  $.ajax({ url: '/saveCart.php', data: tab, 
      success: function(){
      }, 
      error: function(data) { 
      }
    });
}, false);

イベントをキャンセルすることはできないためbeforeunload、ajax呼び出しを行う代わりに、Cookieを更新する方が安全な場合があります。これは、何らかの理由でHTTPリクエストが失敗した場合でも、ページが引き続きアンロードされるためです。これは、Cookieを設定するための非常に優れた入門書です。

本当に簡単な解決策は、beforeunloadリスナーに文字列を返すことです。これにより、「カートは保存されません。[カートを保存]をクリックして保存してください」などの確認ダイアログが作成されます。 UXですが。

于 2012-12-17T02:12:16.813 に答える
0

localStorageJavaScript でカートのステータスを保存し、ユーザーが注文を確認したときにそれをサーバーに送信するために使用できます。

于 2012-12-17T02:00:51.727 に答える
0

http://www.jstorage.info/などのプラグインを使用することをお勧めします

クライアント側でデータを保存/取得する簡単な方法を提供します

于 2012-12-17T02:10:12.837 に答える