【发布时间】:2016-10-19 03:37:43
【问题描述】:
在我的购物车中,我添加了我的产品,存储在会话中。
我想在页面刷新时从所有下拉列表中存储我选择的选项。
我需要刷新我的页面,以便可以更新我的会话,以便我可以在我的数据库中发布所有更新的值。 怎么了……
如果我为我的产品的第一行选择一个选项,它会保存在本地存储中。但是当我从另一行选择另一个产品选项时,它会覆盖本地存储,所以我的本地存储只保存一个选项,当从其他产品中选择其他选项时,它正在重写我在本地存储中唯一的一个保存选项。我必须保存多个选项。
如果不刷新会发生什么......
假设我在我的画廊中选择了 1 个靠垫。
所以在我的购物车中,这个垫子将是 1 个产品,如果我通过单击加号按钮再添加两个,然后单击确认订单,它将在我的数据库中发布 1 的值。
但不是 3。 所以我的页面需要刷新,因此我需要保存所有下拉选择,以便刷新页面。
到目前为止,我试图保存它,但它保存了我购物车的第一行。 这是我尝试过的......
$(function() {
if (localStorage.getItem('fabric')) {
$(".fabric option").eq(localStorage.getItem('fabric')).prop('selected', true);
}
$(".fabric").on('change', function() {
localStorage.setItem('fabric', $('option:selected', this).index());
});
});
$(function() {
if (localStorage.getItem('size')) {
$(".size option").eq(localStorage.getItem('size')).prop('selected', true);
}
$(".size").on('change', function() {
localStorage.setItem('size', $('option:selected', this).index());
});
});
如果需要更好地理解,这是我的foreach loop。
下面的这个脚本对于这个问题并不重要,但它显示了我如何处理我的下拉列表以使 ajax 使用数据属性根据下拉选择获取值。
【问题讨论】:
-
首先,localStorage 不是 PHP。顾名思义,它是一个本地(客户端)存储。要更新您的数据库,您必须提交表单或使用 ajax。我在您提供的代码中没有看到这些。
-
我知道,但我正在尝试从下拉列表中保存选定的选项,并且我尝试使用本地存储,我发布了我使用的脚本。
-
我想使用本地存储来保存所有下拉列表,但是我的下拉列表被覆盖了
-
好的...所以当您刷新时,以前的值不存在吗?如果是这样,请尝试从
$('option:selected', this).index()中删除, this... ...尝试localStorage.setItem('size', $(this).find('option:selected').index()); -
哈哈!!!我现在终于明白这个问题了。我会尝试一个答案。