我正在尝试使用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时有关。我将readCookie函数绑定到jquery mobile中的pageshow函数,如下所示:
$(document).on('pageshow',function(e, ui){
if (e.target.id == 'assessment') {
var objective = readCookie('objective');
alert("objective: "+objective);
不幸的是,这会导致每次都出现“null”cookie值。我需要做什么才能在PHP中设置cookie并在javascript中调用它?