JS cookie变量在帖子后丢失了

时间:2009-11-17 08:11:01

标签: php javascript

main.php:

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

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

JS PART:

   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 PART:

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

  include("searchtest.php");   

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

你能否告诉我一些如何绕过这个?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

我认为这不是更好的解决方案..但它可行。

一个问题。 post请求的路径是在同一条路径中?例如,如果cookie在路径/示例/中有效,并且您的帖子将转到另一个路径/ example2 /,则cookie将无法在/ example2 / path中运行。在这种情况下,您可以在根路径(/)中声明cookie,但我不知道如何在该JQuery插件中执行它。

祝你好运,抱歉我的英语不好。