0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

cookieで条件分岐するときはjQueryよりPHPがいいってハナシ。

Last updated at Posted at 2020-07-08

「同じページに2回目以降は表示させない」

というのをやりたかったのですが、
つまったので、苦労の後を記録しておきます。

##jQueryの場合

jQueryのクッキー使うときは、以下のように

  • jQuery
  • jquery.cookie.js
  • cookieを発火させる記述

の順番に記述します。

<script src="js/jquery-3.4.1.min.js" type="text/javascript"></script>
<script src="js/jquery.cookie.js" type="text/javascript"></script>
<script>
    //クッキーがあれば、#js-loaderを非表示にする
    if ($.cookie("access")) {
      $("#js-loader").css('display','none');
    }
    //クッキーを取得させる
    $.cookie("access","topPage"); //2つ目は任意の文字を入れます
</script>

こちら参考にしました
-> jQueryプラグイン「jquery.cookie.js」でcookieを簡単に扱う

これでも機能したのですが、
javascriptの読み込みが遅い場合、
#js-loaderが最初にちょこっと表示されてしまいます!!!

これだとクッキーで条件分岐する意味がない。。。。

なので、最初っからキレイに非表示にしたい場合、
PHPを使いましょう!

##PHPの場合
以下のように記述しました。
まず、最初のページに表示させる条件分岐を書き、
その中に、クッキーがあるかどうかで条件分岐させます。


<?php if(is_front_page()):
      if(!(isset($_COOKIE["topPage"]))): //クッキーが保存されていない時 []内は任意の文字
      setcookie("topPage", 1); //クッキーをいれる 2つ目は任意の値を入れます ?>
 <div id="js-loader">
  ローディングアニメーションの要素
 </div>
<?php endif; //クッキーの分 ?>
<?php endif; //is_front_pageの分 ?>

これでスッキリ解決しました!!

こちら参考にしました!
-> PHPでCookieを使う方法【初心者向け】
-> クッキーの読み込み

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?