【问题标题】:Add values to the cookie using URL使用 URL 向 cookie 添加值
【发布时间】:2014-05-26 19:08:32
【问题描述】:

我正在开发我的网上商店,因为我不希望用户必须注册才能使用网上商店,所以我使用 javascript cookie 来保存用户输入的值。但我希望人们使用不同的 url(例如:http://test.com/index.php?124&342)去网上商店,在购物车中有 2 个值,我做了一些函数来解决这个问题。下面是代码:

function getUrlVars() {
    var variabelen = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    var urls = $.cookie($.cookie('cart')) || [];

    for (var i = 0; i < variabelen.length; i++) {
        urls.push(variabelen[i]);

    }
}

if ($.cookie('cart')) {
    var Orders = $.parseJSON($.cookie('cart'));
} else {
    var Orders = new Array;
}


getUrlVars();

其中“订单”是带有所选产品 ID 的 json 数组。现在这不像我想要的那样工作。它不会将 URL 变量推入购物车。

好的更新:

我成功推送cookie中的URL变量,但是现在出现以下问题。

function UpdateTotals() {
            ToAddHTML = '<h1>Cart</h1></br>';
            console.log(Orders);
            TotalPrice = 0;
            for (var i = 0; i < Orders.length ; i++) {
                var Result = SubMenuItems.filter(function(v) {
                    return v.submenu_id === Orders[i];
                })[0];
                TotalPrice += parseFloat(Result.price);
                ToAddHTML += '<div class=orderd> <span class="order" Orders='+i+'> </span>'+'&euro;'+zoekresultaat.price+' '+zoekresultaat.title+'</br></div><hr>';
            }

实时网站已开启(注意,我使用荷兰语描述,因此功能名称不同):

Website

【问题讨论】:

  • location.search 会更好吗?
  • @susheel 真正重要的是什么?
  • 没关系,但只提供参数可能会更容易完成工作
  • @susheel 谢谢,我试试看!
  • "但现在出现以下问题。"什么问题?

标签: javascript jquery cookies


【解决方案1】:

如果我正确理解了问题,这应该可以解决问题:

// Given: page.html?109&10
// -----------------------
// Split the query string on '&', after the '?' and push
// each value into the array 'Bestellingen'
// -----------------------
$.each(document.location.search.substr(1).split('&'),function(key,value){ 
    Bestellingen.push(value);
});

您可以将您的方法 haalUrlVars 替换为上面的两行代码,您应该会发现项目 109 和 10 已添加到您的列表中,就像加载页面时在 cookie 中一样。

这有帮助吗?

【讨论】:

  • 它确实将订单添加到数组 Bestellingen。但财产“价格”仍未定义。至少有一点!更多的投入会很棒!
  • i.imgur.com/uEEZuiF.png 这就是当我试图按照你刚才说的方式做的时候发生的事情!
  • “.push”是否可能导致数组损坏?
  • 嗨 Rinke,不 - 我认为这就像你的例子一样简单 URL 以 valkverhuur.html?109&10 结尾,但产品“10”不存在......所以你的脚本失败了。 twirre.kweekvijvernoord.nl/arragementen_calculator/… 工作得很好。您需要测试“zoekresultaat”是否设置为 .filter() 中的对象。否则,错误写入的 URL 将使脚本崩溃。
  • 嘿吉姆,我完全傻了,喜欢周一早上。我拿了一个不存在的 ID(数字 10)。当我有能力的时候,我会给你+50!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 2019-07-04
  • 2012-05-01
  • 2010-10-03
相关资源
最近更新 更多