【问题标题】:Permanently hide "cookie policy" banner with session variable使用会话变量永久隐藏“cookie 策略”横幅
【发布时间】:2015-02-27 16:19:41
【问题描述】:

好的,我的问题如下:

我有一个在启动时加载的 cookie 策略横幅。我已经用 jquery 编写了一个“隐藏”功能,当点击文本时,它会淡出横幅。一切正常,但是,我不知道如何在浏览网站时将其隐藏(当您更改网站上的页面时,横幅会重新出现)。

我假设这个问题可以通过单击“隐藏”时实例化的会话变量来解决?

然而,我不知道该把代码放在哪里,也不知道如何去做。

jQuery:

$(document).ready(function(){
  $(".cookie-text2").click(function(){
    $("#cookie-container").fadeOut();   
              <?php $_SESSION['noCookPol']= true;?> 
  });
});

我在这里想要做的是在使用这个 jquery 函数时实例化会话变量,但是这种方法(显然我做错了)似乎实例化了变量,无论它是否被点击。

  1. 我应该在哪里实例化这个变量?
  2. 当使用我的“if”语句(那应该是 PHP 对吗?)时,我会使用什么代码来永久隐藏有问题的 div?

类似:

<?php if($_SESSION['noCookPol'] == true) {  

//hide div

}?>

【问题讨论】:

  • 当您说 cookie 时,您是否存储了您在 jquery 中获取并进行测试的 cookie?因为如果是这样,一旦单击横幅然后设置它。
  • 使用 cookie 或会话变量
  • 听起来你更喜欢 HTML/JavaScript 而不是 PHP,所以只需在 JavaScript 中使用 document.cookiedeveloper.mozilla.org/en-US/docs/Web/API/Document/cookie

标签: php jquery session-variables


【解决方案1】:

正如 cmets 中所述,这更多的是 Javascript 问题。 但是纯 javascript 的解决方案可能是:

var exdate = new Date();
exdate.setDate(exdate.getDate() + 365); // 365 is a number of days
document.cookie="cookiePopup=accept; expires=" + exdate.toUTCString();

那么你所要做的就是写一个 if 语句来检查那个 cookie 是否被设置了。

【讨论】:

    【解决方案2】:

    我会使用 jQuery 的 cookie 插件。

    设置一下

    $.cookie('mycookie', 'valueOfCookie')
    

    【讨论】:

    • 成功了,谢谢。设置会话的问题是它要求我搞乱 ajax 和 php(我对这方面的经验为零)。
    • @SafetyFish 这是使用cookie而不是会话,答案仍然适用于该问题。
    猜你喜欢
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多