在页面之间传递多维javascript数组

时间:2014-01-11 17:02:46

标签: javascript php arrays multidimensional-array

我需要将多维JavaScript数组转移到另一个页面,而不使用任何库。我可以使用的是JavaScript,PHP和其他不需要库的语言。

我有一个像这样构建的三维数组: 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();
}
}

3 个答案:

答案 0 :(得分: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 :(得分:0)

所有主流浏览器都支持

JSON.stringify()。通过POST将其发送到服务器,然后让你的PHP从$ _POST中检索变量并将其发回。

答案 2 :(得分:-1)

据我所知,有两种主要方法可以做你想做的事情:

  1. 将数组传递给网络服务器,并在下次请求时将其发回。
  2. 将数据本地存储在浏览器中。
  3. 第一种方式可能变得相当复杂。您必须将数据存储在数据库,文件或cookie /会话中。

    第二种方式是最简单的方法。使用javascript将数组存储在浏览器中。您可以使用cookie,也可以使用localStorage对象。

    使用cookie需要您手动序列化数据。它也会传递给服务器,所以如果你想节省带宽,你会想避免这种情况。

    localStorage方法只会在本地存储数据,而且您也不需要序列化任何内容,浏览器会为您处理此事。

    有关更多示例,请参阅以下链接。

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

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