//我的用意是,把界面上勾选到的值放入cookie里面保存着,等着我第二次放入cookie的时候想判断第二次的值在cookie里面是否存在,存在则不保存到cookie中,不存在则累加上去重新赋值给cookie,这个我是写在js里面的。
var oldllist = new Array();
var newllist = new Array();
var ids=cols[0].grid.GetSelectedIDs();
var tcok= new Array();
if(document.cookie=="lang=zh-cn" ){
document.cookie=ids
}else{
for(var j=0;j<ids.length;j++){
temp=ids[j];
newllist.push(temp);
}
var str=document.cookie;
oldllist=str.substring(0,str.indexOf(";")).split(",");
for(var t=0;t<newllist.length;t++){
for(var y=0;y<oldllist.length;y++){
if(newllist[t]!=oldllist[y]){
tcok.push(newllist[t]);//就是在最后我想把cookie里面的值和我界面勾选到的值做判断的时候,我没有办法控制它不重复数据,麻烦大侠们来看看,谢谢。
}
}
}
可以这样 每次翻页的ID值都累加到 cookie中,然后见cookie的ID字符串取出来放入集合中,在将集合去除重复项转换成字符串放入cookie
if(document.cookie=="lang=zh-cn" )
{
document.cookie=ids
}
else
{
var str=document.cookie;
string[] strIDs =str.substring(0,str.indexOf(";")).split(",");
List<string> list = new List<string>(strIDs);
//接下来就是关键的一步 去除list中得重复ID
list.Distinct();
//接下来将list转换成字符串类型 放入cookie
string new_ids = string.Join(",", list.ToArray());
new_ids += ";";
document.cookie = new_ids;
}
for(var y=0;y<oldllist.length;y++){中的oldllist.length换成上面循环的t.
这样的话,就是自己和自己比较了,我的意思是,把第一次的值放入cookie中,然后第二次值要和cookie里面的值做比较,如果在cookie里面存在那么我就不存入cookie如果不存在则累加重新保存进cookie。
类似。。。。。
看了一句就看不下去了,楼主这样使用cookie 有极大的嫌疑是走错了路.
不妨说说你这么做想实现一个什么样的功能~
额,你好,在extjs的列表里面,在点击下一页的时候会把上一页勾选到的数据清掉,在我导出的时候想把上一页的数据和当前这一页勾选到的数据一起导出,所以我才会想到把上一页勾选到的数据放入cookie中,然后,累加当前这一页勾选到的数据放入cookie,这样的话,在导出的时候直接读取cookie就可以了。
@茹儿:
1:你的翻页动作是直接跳转页面还是ajax请求?
2:cookie本来就不是用来存储数据的.
3:比如某页的所有行都被勾选,那么存这些行的所有数据还是只存行数据的ID?
@coder_wang:
先谢谢你的回答,我这里做好了,谢谢。
翻页是ajax请求,我就是想只记下id就好了,然后在界面上用input控件导出。
你好!我的个人见解哈!你要导出数据对不对?如果要导出数据的话那么你就需要提交数据的id串或者json数据过去对吧,那么这些个过去的串数据按着一定的规则过去就行了,过去后用php打成数组格式unique一下应该就可以,我感觉交互的东西吧,主要就是服务器端如何去处理这个东西,有些操作客户端是不好做的!对了,给你提供一个网站phpjs.net这个里面有js实现的php的大部分函数可供学习使用,你要是做那个cookie记录的话估计php里面的一些函数可以实现,这个站点里面有那个js实现的函数可供选择。具体需求不明朗,仅是个人见解。