将数组携带到新页面

时间:2012-01-27 19:12:11

标签: javascript html cookies

我想知道如何使用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>');
}

我想这样做,以便在点击结帐按钮时,用户被定向到新页面,并且当前在篮子中的项目被转移。目前只有物品的价格被添加到购物篮中。

我不知道如何做到这一点,如果有人能提供帮助,我将不胜感激。

3 个答案:

答案 0 :(得分:1)

欢迎使用StackOverflow!

要将信息从一个页面移动到另一个页面,有一些技巧:

  1. 通过服务器发送数据。按下“添加到购物车”或“结帐”按钮时,通过POST或GET变量发送。也就是说,当按下按钮时,将有关购物车内的信息作为附加变量发送。然后,当“结帐”页面收到请求时,它会在将“结帐”页面发送回浏览器时查找要使用的变量中的信息。

  2. 使用Javascript将购物车内容存储在Cookie中。然后将cookie作为结账请求的一部分发送到服务器。有用于更改cookie的JS库。例如Herehere

  3. 使用Javascript和Ajax告诉服务器何时将某些内容添加到购物车。使用cookie存储用户及其购物车的session_id。结帐页面从会话ID

  4. 中查找购物车

    服务器端软件上的书籍通常讨论购物车,因为购物车是人们常见的问题。您使用的服务器端软件是什么?

    同样无需在布尔表达式(如if语句)中将变量与“true”进行比较。换句话说:

    if (displayQuotes==true) 
    // is the exact same as
    if (displayQuotes)
    

答案 1 :(得分:1)

Javascript是一种由浏览器在定义的页面上执行的语言。 页面之间的关系由HTTP协议处理,因此应该使用此协议从另一页传播数据。

HTTP允许您以三种方式共享数据:

  1. GET
  2. POST
  3. 缓存
  4. GET格式的数据很容易用Javascript编写,您只需将?var1=value&var2=value2附加到您的网址即可。您可以使用服务器端编程语言或分析URL来检索数据(请参阅here)。对于您的应用程序,POST可能会有点棘手,但仍可以完成。 Cookies也可以是一种选择,但有点不同。而不是作为GET / POST跟踪HTTP请求,而是在客户端计算机上保留Cookie。您可以通过Javascript操作Cookie,如this tutorial

    所示

答案 2 :(得分:0)

我不确定你能用javascript做到这一点。 尝试使用PHP,特别是$ _SESSION