2014-01-11 3 views
0

Мне нужно перенести многомерный массив JavaScript на другую страницу без использования какой-либо библиотеки. Я могу использовать JavaScript, PHP и другие языки, которым не нужна библиотека.Пропустить многомерный массив javascript между страницами

У меня есть трехмерный массив, который построен следующим образом: storage[category][field][multiple answers] и имеет множество значений.

мне нужно перенести его на другую страницу, так что я могу получить все значения, как:

alert(storage[5][4][8]);

==================== ================================================== =

Ну, я могу передать нормальную переменную на другую страницу, но я не могу получить значения из своего массива при тестировании: например, storage[1][1][1].

Большой вопрос заключается в том, как я могу передать многомерный массив на другую страницу и все еще иметь возможность получать такие значения: storage[1][1][1]

Как я понял, я вынужден передать все 121 массивы, которые вы можете использовать ниже иметь доступ ко всем измерениям в массиве.

Мой массив строится следующим образом:

storage = new Array(); 
for (var i1=1;i1<12;i1++){ 
storage[i1] = new Array(); 
for (var i2=1;i2<12;i2++){ 
storage[i1][i2] = new Array(); 
} 
} 
+0

'перевод на другую страницу' Не могли бы вы предоставить нам прецедент? – Joren

+0

Если вы используете 2 JS-файла, и оба они включены в обе страницы, и если ваш массив объявлен глобально в одном из файлов, ваше предупреждение будет работать –

ответ

0

JSON.stringify() поддерживается всеми основными браузерами. Отправьте его на сервер через POST, затем попросите PHP получить переменную от $ _POST и отправить ее обратно.

1

без использования библиотеки как JQuery, вы можете преобразовать массив в JSON, передать его через URL и расшифровать его на целевой странице. Преобразование его в формат JSON будет выглядеть следующим образом:

var json_string = JSON.stringify(your_array); 

затем передать его в URL:

var your_url = "http://www.your_website.com/page.html?json_string=" + json_string; 

И вы могли бы расшифровать его обратно в массив так:

var your_new_array = JSON.parse(getUrlVars()["json_string"]); 

Для некоторых прочитайте эту страницу JSON: http://www.json.org/js.html

-1

Насколько я вижу, есть два основных способа сделать то, что вам нужно u want:

  1. Передайте массив на веб-сервер и отправьте его на следующий запрос.
  2. Храните данные локально в браузере.

Первый способ может стать довольно сложным. Вам нужно будет хранить данные в базе данных, файле или файле cookie/сеансе.

Второй способ был бы самым простым. Используйте javascript для хранения массива в браузере. Вы можете использовать файл cookie или использовать объект localStorage.

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

Метод localStorage будет хранить данные только локально, и вам также не нужно сериализовать что-либо, браузер позаботится об этом для вас.

Подробнее см. Приведенные ниже ссылки.

http://www.w3schools.com/html/html5_webstorage.asp

http://www.w3schools.com/js/js_cookies.asp

+0

-1 вы сказали w3schools, посмотрите [w3fools] (http : //w3fools.com), а затем начните использовать [MDN] (https://developer.mozilla.org/) – metadings

+0

@ metadings Я прекрасно понимаю, что w3schools в большинстве случаев является абсолютным дерьмом, но в этом случае он объяснил им оба довольно ясно. – HansiHE

+0

Нет. Просто НЕТ. Оба объяснения в w3schools маловероятны, статья о куках даже содержит синтаксические ошибки. w3schools вводит в заблуждение, как и 10 лет назад. – metadings

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