Перенос массива на новую страницу - PullRequest
0 голосов
/ 27 января 2012

Я хочу знать, как я могу передать переменную с одной страницы на другую, используя 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 ]

1 голос
/ 27 января 2012

Добро пожаловать в StackOverflow!

Для перемещения информации с одной страницы на другую есть несколько методов:

  1. Отправка данных через сервер. Отправка через переменные POST или GET при нажатии кнопки «Добавить в корзину» или «Оформить заказ». То есть, когда кнопка нажата, отправьте информацию о том, что в корзине, в качестве дополнительных переменных. Затем, когда страница «checkout» получает запрос, она ищет информацию в переменных, которая будет использоваться при отправке страницы «checkout» обратно в браузер.

  2. Используйте Javascript для хранения содержимого корзины в файле cookie. Затем файл cookie отправляется на сервер как часть запроса на оформление заказа. Есть библиотеки JS для изменения куки. Например, Здесь и здесь .

  3. Используйте Javascript и Ajax, чтобы сообщать серверу, когда что-то добавляется в корзину. Используйте куки для хранения session_id для пользователя и его корзины. Страница оформления заказа ищет корзину с идентификатором сессии

Книги по серверному программному обеспечению обычно обсуждают корзины покупок, поскольку тележки - это общая проблема для людей. Какое серверное программное обеспечение вы используете?

Также Нет необходимости сравнивать переменную с "true" в логическом выражении, таком как ваши операторы if. Другими словами:

if (displayQuotes==true) 
// is the exact same as
if (displayQuotes)
1 голос
/ 27 января 2012

Javascript - это язык, который исполняется вашим браузером на определенной странице. Отношения между страницами обрабатываются протоколом HTTP, и, следовательно, распространение данных с одной страницы на другую должно осуществляться с помощью этого протокола.

HTTP позволяет вам обмениваться данными тремя способами:

  1. GET
  2. POST
  3. печенье

Данные в формате GET легко писать в Javascript, вам нужно только добавить ?var1=value&var2=value2 к вашему URL. Вы можете получить данные, используя серверный язык программирования или проанализировав URL (см. здесь ). POST может быть немного сложнее для вашего приложения, но все же может быть сделано. Файлы cookie также могут быть опцией, но они немного отличаются. Вместо того, чтобы следовать HTTP-запросу как GET / POST, куки-файлы хранятся на клиентском компьютере. Вы можете управлять файлами cookie с помощью Javascript, как показано в этом руководстве .

0 голосов
/ 27 января 2012

Я не уверен, что вы можете сделать это с помощью JavaScript. Попробуйте использовать PHP, в частности, $ _SESSION

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...