获取多个Cookie并按名称

时间:2015-12-10 16:41:04

标签: javascript jquery html

我有一个使用Cookie的应用程序。每次用户点击"添加"时,会将新Cookie创建为具有多个值的项目。 cookie的名称每次增加1。

示例cookie如下所示:

Cookie 1 - 1=value[] stuff[] things[] ect[];
Cookie 2 - 2=value[] stuff[] things[] whatever[];
Cookie 3 - 3=value[] stuff[] things[] 15[];

用户还可以删除将删除cookie的项目。 例如,用户单击cookie上的Delete,然后只剩下cookie 2和3。

然后,当用户单击“提交”时,将这些cookie添加到可见的表中,然后由XML提交。

在提交时,我需要通过名称搜索所有Cookie,以查看哪些存在。然后拿饼干'将值添加到变量中,然后插入到表中。每个cookie将有14个不同的值。我已经找到了添加cookie的部分。问题是检查cookie何时存在。

当用户点击Add:

时,下面的函数会将行添加到表中
createCookie(lineItem, ShipLineDesc +'[]' + ShipLineEccn +'[]' + ShipLineQty + '[]' + ShipLineOrg +'[]' 
        + ShipLineSchb +'[]' +ShipLineSchBDesc +'[]' + ShipLinePQty + '[]' + ShipLinePUom +'[]' 
        + ShipLineSQty + '[]' + ShipLineSUom +'[]' + ShipLineWeight +'[]' + ShipLineTotalWeight 
        + '[]' + ShipLineValue +'[]' + ShipLineTotalValue, 9999);

    // Read Cookie.
getLine(lineItem);



function getLine(lineItem) {
    // If a cookie doesn't exist, return false. Otherwise, insert in to table.
    if (document.cookie == "") { return false; }
    else {
        // Insert line item from Cookie to table.   
        var vals = readCookie(lineItem).split('[]');
        for(var i = 0; i < vals.length; i++) {
            a1=vals[0];
            b1=vals[1];
            c1=vals[2];
            d1=vals[3];
            e1=vals[4];
            f1=vals[5];
            g1=vals[6];
            h1=vals[7];
            i1=vals[8];
            j1=vals[9];
            k1=vals[10];
            l1=vals[11];
            m1=vals[12];
            n1=vals[13];
        }
        $('#lineItemTable tr:last').after("<tr id='lineItemTd"+lineItem+"'><td style='border-left:0px;'>"+a1+"</td><td>"+e1+"</td><td>"+f1+"</td><td>"+c1+"</td><td>"+k1+"</td><td>"+m1+"</td><td>"+l1+"</td><td>"+n1+"</td>" 
            + "<td><input type='button' value='Edit' onclick='editLine("+lineItem+");' /> <input type='button' value='Del' onclick='delLine("+lineItem+");' /></td></tr>");

        // Change lineItem number for next line.
        addTheLine();
        clearForm();
    }
}
// End

我需要弄清楚如何通过他们的名字检查已经存在的cookie(按名称读取所有cookie,获取每个cookie的值)。 名称将始终为1-10。

读取cookie功能如下:

function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}

// Create Cookie
function createCookie(name,value,days) {
if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = ";expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+";path=/";
}

0 个答案:

没有答案