我正在网店工作,因为我不希望用户注册使用网店,我使用javascript cookies来保存用户输入的值。但我希望那些使用不同网址进入网上商店的人(例如: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();
在哪里&#34;订单&#34;是具有所选产品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>'+'€'+zoekresultaat.price+' '+zoekresultaat.title+'</br></div><hr>';
}
现场网站已开启(nb.im使用荷兰语描述,因此功能有不同的名称):
答案 0 :(得分:2)
如果我正确理解了这个问题,这应该可以解决问题:
// 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&amp; 10会被添加到您的列表中,就像加载页面时在cookie中一样。
这有帮助吗?