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から読み込み)
<?php
$lastNav = $_COOKIE['lastNav'];
?>
コメント