2017-01-04 3 views
1

誰かが私を助けてくれることを願って、私は尋ねる前にオンラインで研究をしようとしました。新しいユーザーのためのモーダルポップアップ - bootstrap、php、js

私は現在準備ができている(歓迎)ブートストラップモーダルに取り組んでいます。私はPHP環境で働いていて、私はPHPとjsのスーパーnoobです。現在私はそれを持っているので、それはクッキーを介して一度だけポップアップします。

<script type="text/javascript"> 
    $(document).ready(function() { 
     if (document.cookie.indexOf("shown=true")<0) { 
      var show = function(){ 
       $('#myModal').modal('show'); 
      }; 

      $(window).load(function(){ 
       var timer = window.setTimeout(show,500); 
      }); 
     } 

     document.cookie = "shown=true; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/"; 
    }); 
</script> 

私の問題は、現在のすべてのユーザーに表示されており、インデックスページのみに新しいサインアップを表示することです。

ie:ユーザーサインアップ - >クリックレジスタ - >ユーザーがブートストラップモードが表示されるインデックスページに移動します(1回のみ)。

これを行う方法はありますか?私はこれについて正しいことをしていますか?クライアント側とサーバー側?どんな助けにも大いに感謝します

ありがとうございます。

capt.poopypants

+0

私が正しくあなたを理解した場合は、クッキーを使用して一部をダウン「一度だけ表示され」てしまいました。 '$ _SERVER ['HTTP_REFERER']'を使って、ユーザが登録から来ているかどうかを確認し、それが本当であるかどうかを確認することができます。 – Mihailo

答えて

0

あなたは、クライアント側でそれを処理しようとしている場合のlocalStorageを使用することをお勧めします。しかし、クライアント側に持っていれば、ブラウザのキャッシュがクリアされたときにのみリセットされ、2番目のユーザーが同じブラウザに登録しても機能しません。 これらのすべてのケースを処理したい場合は、モーダルを表示するかどうかを知らせるために、サーバーからフラグを取得する必要があります。 しかし、あなたはクライアント側のアプローチで行く場合は、クッキーを削除してのlocalStorageを使用して、あなたのコードを変更することができます。

<script type="text/javascript"> 
    $(document).ready(function() { 
     var wasModalShown = localStorage.getItem('wasModalShown'); 
     if (!wasModalShown) { 
     localStorage.setItem('wasModalShown', true); 
     var show = function() { 
      $('#myModal').modal('show'); 
     }; 

     $(window).load(function() { 
      var timer = window.setTimeout(show, 500); 
     }); 
     } 
    }); 
</script> 
関連する問題