jquery移动旧值而不是新值

时间:2015-07-23 10:52:17

标签: php jquery jquery-mobile

我通过链接发送变量:

<a href="foo.php?var=101"> php </a>
<a href="foo.php?var=102"> html </a>
<a href="foo.php?var=102"> css </a>

foo.php

<!-- this part is under data-role="page" !-->
if(isset($_GET['var'])){
    switch($_GET['var']){
        case "101":
            setcookie("bar", "1");
            break;
        case "102":
            setcookie("bar", "2");
            break;
        case "103":
            setcookie("bar", "3");
            break;
        default:
            setcookie("bar", "");
    }
}
<!-- this part is under contents !-->

echo $_COOKIE['bar'];

现在的问题是:让我说我index.php并点击链接phpfoo.php上什么都没有,如果我回去点击html我得到php这是不寻常的,如果我回去并点击css之后,我会html

我所有的JS文件都在index.php的头下,为什么我得到旧值?

1 个答案:

答案 0 :(得分:2)

问题来自于setcookie()没有立即设置cookie,它发送标题以便浏览器设置cookie。这意味着,对于当前页面加载,setcookie()将不会生成任何$ _COOKIE。

当浏览器稍后请求页面时,它会在标题中发送cookie,以便PHP可以以$ _COOKIE的形式检索它们。