繁体   English   中英

JS Cookie变量在发布后丢失

[英]JS cookie variable lost after post

main.php:

    <div id="test" class="test">
          <?php  include("data.php");?>
    </div>

data.php:在此php中,我有一些查询,然后打印一些列表...每个列表都在自己的DIV标签中,并且在加载页面时所有DIV标签都“关闭”,除了最后一个用户已打开。 我使用cookie保存DIV ID,以了解重新加载页面时必须打开的ID。

JS部分:

   var test= $.cookie('test_cook');
   $('div[class*="test"]').hide();
   var op = $.cookie("test_cook");
   alert(op);
   $('div.test' + op).show();

   $('input:image').click( function() {
   var nr = $(this).attr('id').substr(7,2);
   $('div.test' + nr).toggle(400);
   $.cookie("test", nr, {expires:1 });

});

PHP部分:

在searctest.php中,有一些打印列表,列出用户搜索的内容,如果需要,可以将其发送到数据库。

  include("searchtest.php");   

如果我重新加载或关闭页面,则cookie运行良好,最后打开的DIV标签保持打开状态。 但是在用户进行搜索并发布之后,cookie变量将为空。

你能给我建议一下我该如何绕过?

使用Ajax而不是发布。 这样就不会清除本地页面上下文。

我不知道真正的问题是什么,但是您可以强制在POST响应的标头中重新加载cookie。

<?php setcookie(cookieName,$_COOKIE["cookieName"],time, domain,... ); ?>

我认为这不是更好的解决方案。但是它可以工作。

一个问题。 发布请求的路径在同一路径吗? 例如,如果cookie在/ example /路径中有效,而您的帖子将转到另一个路径/ example2 /,则cookie在/ example2 /路径中将无效。 在这种情况下,您可以在根路径(/)中声明cookie,但是我不知道如何在该JQuery插件中进行操作。

祝你好运,对不起,我英语不好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM