如何使用jQuery在Session中存储值?

时间:2011-03-10 17:10:57

标签: javascript jquery

如何在会话中存储此值?

我的网格有3页..页面大小为50当我在第一页更改此下拉列表框时它正在完美。但是当我到达第二页时,我没有看到此下拉列表框的选定值?

有没有办法让我们为此下拉列表框值维护会发送到下一页设置?

5 个答案:

答案 0 :(得分:3)

jQuery在客户端运行,而session是服务器端构造。您需要检查您的HTTP服务器(无论您使用何种技术)。

如果您不将其发布到服务器,则可以将Cookie用于持久客户端存储。或者,如果您没有重新加载页面,则可以将其存储在常规的javascript变量中。

答案 1 :(得分:3)

没有办法让jQuery在你的会话环境中存储一些东西。会话是服务器端概念,在客户端只用标识符表示。

您必须拥有可以POST到的服务器操作,并且该操作可以将使用POST发送的参数放入会话中。

从客户端,您也无法访问会话的内容,除非您的网页明确地将某种地图转储到网页上。< / p>

答案 2 :(得分:3)

通过会话,你的意思是你的服务器端会话变量?如果是这样,您需要将帖子发送到您选择的语言的页面,解析变量,然后在下一页上,阅读会话变量并相应地设置选项选择。

如果通过会话,您的意思是在客户端保留相同的选项,这可以通过在客户端计算机上通过javascript设置cookie然后在下一页上读取它,或者发送查询字符串来轻松实现与下一页的网址。

修改

如果没有自动发布,我建议在选择选项时设置cookie。

以下是您可以适应的一些 伪代码 :( more on javascript cookies @ w3schools

<option onclick="setcookie("#id")">
function setCookie(choice){
  document.cookie="option=" + choice;
}

下一页:

$(document).load(checkCookie());
function getCookie(option)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==option)
    {
    return unescape(y);
    }
  }
}
function checkCookie()
{
var option=getCookie("option");
  if (option!=null && option!="")
  {
   $(option).selected();
  }
}

答案 3 :(得分:2)

您可以使用Cookie。这个cookies library有jQuery绑定,可以根据cookie值自动填充表单元素,反之亦然。

否则,您需要遵循Konrad Garus,Pointy和Michael Jasper的建议 - 转到服务器端。

答案 4 :(得分:0)

另一种方法是使用Cookie。 jQuery有 cookie插件(http://plugins.jquery.com/project/Cookie)。 您可以将值存储在cookie中,并在下一页中获取它们。 但是,如果用户关闭cookie,它将无法工作。