Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将4个下拉列表选择保存到cookie中,并在存在cookie时设置下拉列表_Javascript_Jquery - Fatal编程技术网

Javascript 如何将4个下拉列表选择保存到cookie中,并在存在cookie时设置下拉列表

Javascript 如何将4个下拉列表选择保存到cookie中,并在存在cookie时设置下拉列表,javascript,jquery,Javascript,Jquery,因此,我使用jQuery并设置了jQuery cookie插件 我的页面上有4个下拉列表,我想将用户的选择保存在cookie中,因此当他们返回页面时,我会自动预选他们以前的选择 我在所有下拉列表“ddl cookie”中添加了一个类,我只是在想,是否可以使用该类在所有下拉列表中循环,保存选择,并在用户返回页面时循环设置选择 $(".ddl-cookie").each(function() { }); 似乎给定一个cookie名称,我可以在cookie中保存一个键/值 所以我猜我唯一能做到这一

因此,我使用jQuery并设置了jQuery cookie插件

我的页面上有4个下拉列表,我想将用户的选择保存在cookie中,因此当他们返回页面时,我会自动预选他们以前的选择

我在所有下拉列表“ddl cookie”中添加了一个类,我只是在想,是否可以使用该类在所有下拉列表中循环,保存选择,并在用户返回页面时循环设置选择

$(".ddl-cookie").each(function() {

});
似乎给定一个cookie名称,我可以在cookie中保存一个键/值


所以我猜我唯一能做到这一点的方法就是用逗号分隔的下拉列表名称和值(选择值)?

你说得对。Cookie用于存储单个数据段,因此最常用的处理方法是将数据序列化为易于检索的格式。该格式由您决定,但您可以使用以下格式:

field_1=value1&field_2=value&...
您可能还需要对这些数据进行编码——请记住,cookie是作为请求头的一部分传输的。伪代码如下所示:

// Store the data, using your own defined methods
data = serialize_data(data);
data = encode_data(data);
cookie = data;

// Retrieve the data using your own defined methods
data = cookie;
data = unencode_data(data)
data = deserialize_data(data)

为什么我要对它进行编码?你的意思是如果我不知道的话,某些字符可能会丢失?正确--在提交表单时,浏览器通常会对数据进行编码,以便在HTTP请求中只发送允许的字符。设置cookie时,需要手动执行此操作。这不一定是必需的,但肯定是良好的做法,如果不这样做,可能会导致问题。我还修改了我的答案,使用了像查询字符串这样的序列化格式。这是一种标准格式,我相信jQuery提供了将数据强制转换为查询字符串格式和从查询字符串格式转换为数据的方法。