2012-03-24 4 views
2

На моем сайте пользователи выбирают цвета, которые хотят, и после их выбора они переходят на следующую страницу. В настоящее время, каждый раз, когда они нажимают на цвет, я добавляю его в массив JavaScript. Когда они будут готовы перейти на следующую страницу, я хочу передать этот массив цветов, чтобы я мог отображать их выбранные цвета на следующей странице. Итак, мой вопрос: как я могу выполнить это с помощью jQuery или PHP?jQuery redirect проходящий массив

Спасибо.

+0

Я не вижу ничего изначально jQuery-ish по этому вопросу ... но я полагаю, что если вы хотите использовать JavaScript-решение, и вы уже используете jQuery, вам могут понадобиться специалисты jQuery, чтобы найти их через тег jQuery. –

ответ

2

Вы можете передать массив таким образом:

$.post('URL_Of_Next_Page', {'MyArray': actualArray}); 

Чтобы сделать редирект, то вы можете сделать это:

window.location.replace("URL_Of_Next_Page"); 

Я не уверен, но если вы делаете пост до того перенаправление, то он может иметь массив, но я сомневаюсь в этом. Вы можете либо сохранить массив в переменной сеанса, либо сделать так, как предложил сафаров, и передать его через параметры запроса.

Для сеанса подхода

$_SESSION['MyArray'] = json_encode(actualArray); 

Тогда, чтобы получить его обратно:

actualArray = json_decode($_SESSION['MyArray']); 

Чтобы получить его JSONified использовать в виде строки:

var actualArrayAsString = JSON.stringify(actualArray); 
+0

Да, я пробовал это раньше, но он не перенаправляется. Я понимаю, что он просто делает запрос POST, а не перенаправляет. – jrubins

+0

@jrubins Если вы перенаправляете, все данные теряются! Если вы хотите сохранить данные между страницами, вам придется придумать какой-то поток, например, запрос POST на вторую страницу, как предлагает Justin. Просто простое перенаправление не будет отвечать вашим потребностям. – Oldskool

+0

@jrubins Я обновил свой ответ ..и скоро опубликует пример кода –

2

Вы можете определенно передайте параметры вдоль строки запроса. Похоже, у Джастина есть хорошая идея. Для моего личного подхода к веб-приложениям я бы рассмотрел следующие варианты:

  1. Переменные сеанса в PHP. Быстрый поиск должен предоставить вам функции, необходимые для хранения переменных сеанса. Супер легкий. Если вы нуждаетесь в них обратно в JavaScript на следующей странице, вы можете просто повторить их PHP в JS-переменных или еще лучше, используйте логику на сервере, чтобы заполнить классы или тег стиля в вашей разметке.

  2. Cookies. Печенье работало много лет и будет продолжать работать на долгие годы. ;-)

  3. localStorage. Только полезно, если ваши конечные пользователи определенно используют современные браузеры, поскольку localStorage - это API HTML5. По совпадению, я написал небольшой пост о LocalStorage прошлой ночью: http://gregpettit.ca/2012/fun-with-html5-localstorage-api/ (статья содержит ссылки на другой полезный пост переполнением стека, а также внешний учебник)

Если вы делаете что-то на стороне клиента, вы могли бы реализовать № 3 с отступлением от # 2. Если вы используете # 1, я бы не стал беспокоиться об отказе, потому что он был серверным.

Смежные вопросы