javascriptからPHPへ変数を手渡すのにcookieを使う

Web App

js から PHP へ変数を手渡すのに何故か localStorage(HTML5で使えるようになったcookieのようなもの)が便利そうに感じた。あれ?簡単じゃない。

確かにjsでの扱いは楽よ。だけど…

PHP に手渡す手段が…見つけられない…

結局

cookieに保存した値をpost(submit)し、$_COOKIEで取得する

ことにした。

cookieを楽に扱いたいので jquery.cookie.js を使うよ。つまり jquery を使う(脱jqueryに向かっていけない…)。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script>

js で toggle という文字列を lastNav という名前の cookie に保存する。

<script>
  var lastNav = $.cookie('lastNav', 'toggle', {expires:7}); // jquery.cookie.js
</script>
{}の中はオプション、上記だと有効期限7日。
有効期限(expires)を設定しなければ、ブラウザを閉じると同時にクッキーが削除される。

しかし、このままでは PHP は js が作ったクッキーを受け取ることができない。

js(クライアントサイド)で何が起こっているかを PHP(サーバサイド)では分からない。

そこで、form を使い submit する(必須)。

画面遷移無しに js と PHP はやり取りできない。

js で保存した cookie を PHP で受け取る。

// 読み込み時(cookieから読み込み)
$lastNav = $_COOKIE['lastNav'];

コメント