1

我有一个像这样的多维数组

  • [0]字符串
  • [1]-->[0]字符串,[1]字符串,[2]字符串
  • [2]字符串
  • [3]字符串
  • [4]-->[0]字符串,[1]字符串,[2]字符串[3]字符串,[4]字符串,[5]信息

(我希望这是有道理的)

其中 [1] 和 [4] 本身就是数组,我可以像 myArray[4][5] 一样访问INFO 。

嵌套数组([1] 和 [4])的长度可以变化。

我使用这种方法在一个非常复杂的表单中存储、计算和分发数据。

并非所有存储在数组中的数据都进入输入字段,因此当调用表单的 post 方法时,并非所有数据都发送到下一页。

我想在下一页以与第一页相同的方式访问数组。


想法:

方法一:

我想我可以将所有数据加载到隐藏字段中,发布所有内容,然后在第二页上获取这些值并将它们全部加载回数组中,但这需要一百多个隐藏字段。

方法二:

我想我也可以使用 .join() 将整个数组连接成一个字符串,将其加载到一个输入中,发布它,然后使用 .split(",") 将其分解。但是如果我这样做,我不确定如何处理它的多维方面,以便我仍然能够访问第 2 页上的 myArray[4][5] 之类的 INFO。

我将使用 Javascript 访问数组,在第 1 页上输入的值将使用第 2 页上的 php 访问。


我的问题是有没有更好的方法来完成我需要的,或者我如何设置上面提到的方法 2?



这解决了我的问题:

var str = JSON.stringify(fullInfoArray);
sessionStorage.fullInfoArray = str;

var newArr = JSON.parse(sessionStorage.fullInfoArray);

alert(newArr[0][2][1]);
4

2 回答 2

3

如果可能,您可以使用sessionStorage以下方法存储对象的字符串表示形式JSON.stringify()

// store value
sessionStorage.setItem('myvalue', JSON.stringify(myObject));

// retrieve value
var myObject = JSON.parse(sessionStorage.getItem('myvalue'));

请注意,sessionStorage可以存储多少有上限;我相信它大约是 2.5MB,所以你不应该轻易点击它。

于 2013-04-09T07:14:39.470 回答
1

将数据保存在您的 PHP 会话中,每当您提交表单时,更新会话中的数据。您生成的每个页面都可以使用此数据生成。

或者

如果您使用的是现代浏览器,请使用 HTML5 localStorage。

或者

你可以继续你正在做的事情:)

于 2013-04-09T05:50:17.107 回答