jquery mobile を使用して単純な Web アプリを作成しようとしています。アプリのある時点で、php ページから javascript ページに情報を取得する必要があります (つまり、javascript が Cookie を更新し、それが php によって読み取られ、それが javascript によって読み取られる)。など)。
php で Cookie を設定し、同じページの読み込み時に JavaScript で読み取ることができることをテストするために、次の作業スクリプトを作成しました。
<?php
include("../../../connectFiles/connect_dev.php");
setcookie("cookie_test","hello", 0, '/');
?>
<html>
<head><title>Cookie setting test</title></head>
<body>
<script type="text/javascript">
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
alert(readCookie('cookie_test'));
</script>
Hello there, I hope you were able to see my cookie!
</body>
前述したように、これはうまく機能しました。しかし、同じコードを jquery モバイル フレームワーク内に実装しようとすると、Cookie が見つからないようです。「ヌル」と表示され続けます。これは、jquery モバイル フレームワークを介して Cookie にアクセスしているときと関係があると思います。次のように、jquery モバイルで readCookie 関数を pageshow 関数にバインドしました。
$(document).on('pageshow',function(e, ui){
if (e.target.id == 'assessment') {
var objective = readCookie('objective');
alert("objective: "+objective);
残念ながら、これは毎回「null」の Cookie 値になります。PHP で Cookie を設定し、JavaScript で呼び出すにはどうすればよいですか?