我想知道如何使用JavaScript将变量从一个页面传递到另一个页面
这是我的代码:
var currentBasketPrice = 0;
var quotes = new Array(
"A good painting to me has always been like a friend. It keeps me company, comforts and inspires.",
"A man paints with his brains and not with his hands.",
"A picture is a poem without words.",
"A work of art is the unique result of a unique temperament.",
"An artist cannot fail; it is a success to be one.");
var quotePerson = new Array(
"Hedy Lamarr",
"Michaelangelo",
"Horace",
"Oscar Wilde",
"Charles Horton Cooley");
var imgSrc = new Array ("images/hangings/1.jpg","images/hangings/2.jpg");
var prices = new Array (100,50);
var sizes = new Array ("450*350","100*50");
var inBasketPrices = [];
var inBasketNames = [];
function load(displayQuotes, displayBasket, displayProductInfo)
{
if (displayQuotes==true)//quotes
{
var quotenum = Math.floor(Math.random()*5 );
document.getElementById('quote').innerHTML= quotes[quotenum];
document.getElementById('quoteperson').innerHTML=" - " + quotePerson[quotenum];
}
if(displayBasket==true)
{
var list = $('#basketsidebar ul');
list.append('<button type="button">Checkout</button>');
}
if(displayProductInfo==true)
{
for (var i = 0; i < prices.length; i++)
{
var list = $('#products ul');
list.append('<li><img src="'+imgSrc[i]+'" width="525px" height="350px"/></li>');
list.append('<li>Price: £' + prices[i] +'</li>');
list.append('<li>Size: ' + sizes[i] +'</li>');
list.append('<button type="button" onclick="addToBasket(' + i + ')">Add To Basket</button>');
}
}
}
function addToBasket(itemAdded)
{
inBasketPrices.push(prices[itemAdded]);
var list = $('#basketsidebar ul');
list.append('<li>Price: £' + inBasketPrices[itemAdded] +'</li>');
}
我想这样做,以便在点击结帐按钮时,用户被定向到新页面,并且当前在篮子中的项目被转移。目前只有物品的价格被添加到购物篮中。
我不知道如何做到这一点,如果有人能提供帮助,我将不胜感激。
答案 0 :(得分:1)
欢迎使用StackOverflow!
要将信息从一个页面移动到另一个页面,有一些技巧:
通过服务器发送数据。按下“添加到购物车”或“结帐”按钮时,通过POST或GET变量发送。也就是说,当按下按钮时,将有关购物车内的信息作为附加变量发送。然后,当“结帐”页面收到请求时,它会在将“结帐”页面发送回浏览器时查找要使用的变量中的信息。
使用Javascript将购物车内容存储在Cookie中。然后将cookie作为结账请求的一部分发送到服务器。有用于更改cookie的JS库。例如Here和here。
使用Javascript和Ajax告诉服务器何时将某些内容添加到购物车。使用cookie存储用户及其购物车的session_id。结帐页面从会话ID
服务器端软件上的书籍通常讨论购物车,因为购物车是人们常见的问题。您使用的服务器端软件是什么?
同样无需在布尔表达式(如if语句)中将变量与“true”进行比较。换句话说:
if (displayQuotes==true)
// is the exact same as
if (displayQuotes)
答案 1 :(得分:1)
Javascript是一种由浏览器在定义的页面上执行的语言。 页面之间的关系由HTTP协议处理,因此应该使用此协议从另一页传播数据。
HTTP允许您以三种方式共享数据:
GET格式的数据很容易用Javascript编写,您只需将?var1=value&var2=value2
附加到您的网址即可。您可以使用服务器端编程语言或分析URL来检索数据(请参阅here)。对于您的应用程序,POST可能会有点棘手,但仍可以完成。 Cookies也可以是一种选择,但有点不同。而不是作为GET / POST跟踪HTTP请求,而是在客户端计算机上保留Cookie。您可以通过Javascript操作Cookie,如this tutorial。
答案 2 :(得分:0)
我不确定你能用javascript做到这一点。 尝试使用PHP,特别是$ _SESSION