jQuery / JS表转储到cookie

时间:2014-04-07 14:10:18

标签: javascript jquery cookies

基本上我必须阅读HTML表的内容并将此日期保存在cookie中。然后红色这个cookie重新填充同一个表ater页面重新加载(在第一个表中是在jquery中生成的)

所以我有一个HTML表格

<table>
<tr>
<td>Name1</td>
<td>Value1</td>
</tr>
<tr>
<td>Name2</td>
<td>Value2</td>
</tr>
</table>

保存我使用的cookie

document.cookie = 'orderArray = '+table;

我必须以格式保存他的单元格的cookie内容:

name1:value1;name2:value2

如果我接下来会得到这种形式的转储,我可以在php中进行重新填充表格。那么,如何将这个HTML表转储到这个表单或者可能有一个人有更好的想法?

2 个答案:

答案 0 :(得分:0)

我建议您使用html5的localStorage功能代替cookie。

获取您的表数据并将其放入数组中。然后将其存储在localstorage中,如。

var values = getTableData(); //这应该返回数组

window.localStorage.setItem(key,JSON.stringify(values));

检索数据

var values = JSON.parse(window.localStorage.getItem(key));

localStorage再次优于cookie

答案 1 :(得分:0)

我无法使用HTML5功能,因为我必须支持IE8:/。

但我解决了这个问题。

首先我制作一个jQuery数组。接下来使用 .toString()函数将其转换为字符串,最后保存到cookie。

    orderArray = [];
    var data = new Date();
    var days = 1;
    date.setTime(date.getTime()+(days*24*60*60*1000));
    expires = "; expires="+date.toGMTString();
    jQuery('table tr').each(function(){
        var name = jQuery(this).find('.sec').text();
        var qty = jQuery(this).find('input').attr('value');
        orderArray.push(name+"^"+qty);
    });
    document.cookie = 'orderArray = /'+orderArray.toString()+'/;'+expires;

我在cookie数据中使用了斜杠和证书,以便在使用 .split()函数后轻松读取数据

    table = document.cookie.split("/");     
    table = table[1].split(',');
    arrayInsert = 0;
        table.each(function(){
            tablee = table[arrayInsert].split("^"); 
            countOrderItems++   
            jQuery('table tbody').append('<tr><td>'+tablee[0]+'</td><td><input type="text" value="'+tablee[1]+'"></td><</tr>');
            arrayInsert++;
        });

我希望它对其他人有帮助:)。

P.S。我使代码比我的页面更短/更简单。我希望我没有错过任何一段代码