ajax获取session变量更新的值

我在a.php存入session变量$_SESSION['a'] = 1;
前台页面有一个点击事件,ajax获取通过$_SESSION['a'] 等于 1 让其可点击执行,
通过ajax在b.php取得值,执行一次后,将session变量$_SESSION['a'] = 0,这时候就让这个点击事件不可再执行。
但是实际上$_SESSION['a'] = 0 后,再次点击事件还是能执行,除非刷新页面。
如何才能在不刷新状态下通过Ajax获取$_SESSION['a']最新的值。

阅读 8.5k
1 个回答

这个是因为浏览器解析完了PHP代码,如果不发起新的请求, 不会重新解析, 你可以F12浏览器审查元素看一下, 里面就是实际是HTML,而不是$_SESSION, 我说一下想法给你。

  1. 声明一个全局变量标记

  2. ajax 取值响应时,通过判断session的值重新赋值click_flag

var click_flag= true;

// ajax 请求
$.get(url, data, function(res){
    // 判断 session 的状态
    if (res.session == 0)
    {
        click_flag = false;
    }
    else
    {
        click_flag = true;
    }
});


// 点击事件
$("#id").click(function(){
    // 如果标记不存在, 不执行后续代码
    if (!click_flag)
    {
        return false;
    }
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题