我有一个多维数组,就像这样
- [0]字符串
- [1] ->[0]字符串,字符串[1],[2]字符串
- [2]字符串
- [3]字符串
- [4] ->[0]字符串,字符串[1],[2][3]字符串的字符串,字符串[4],[5]信息
(I hope that make sense)
其中[1]和[4]本身就是数组,我可以像myArray[4][5]那样访问INFO。
嵌套数组([1]和[4])的长度可以变化。
我使用这个方法在一个相当复杂的表单中存储、计算和分发数据。
不是所有存储在数组中的数据都被发送到一个输入字段,所以当表单的post方法被调用时,并不是所有的数据都被发送到下一页。
我希望在下一页中以与第一页相同的方式访问数组。
思想:
方法1:
我想我可以将所有数据加载到隐藏字段中,发布所有内容,然后在第二页获取这些值并将它们全部加载回数组,但这将需要超过100个隐藏字段。
方法2:我想我也可以使用.join()将整个数组连接成一个字符串,将其加载到一个输入中,发布它,并使用.split(",")将其分解回来。但是如果我这样做,我不确定如何处理它的多维方面,这样我仍然可以访问INFO像myArray[4][5]在第2页。
我将使用Javascript访问数组,在第1页输入的值将在第2页使用php访问。
我的问题是是否有更好的方法来完成我需要的或我如何设置上面提到的方法2 ?
这解决了我的问题:
var str = JSON.stringify(fullInfoArray);
sessionStorage.fullInfoArray = str;
var newArr = JSON.parse(sessionStorage.fullInfoArray);
alert(newArr[0][2][1]);
如果可能的话,您可以使用sessionStorage
来存储使用JSON.stringify()
的对象的字符串表示:
// store value
sessionStorage.setItem('myvalue', JSON.stringify(myObject));
// retrieve value
var myObject = JSON.parse(sessionStorage.getItem('myvalue'));
注意,sessionStorage
有存储的上限;我相信它大约有2.5MB,所以你不应该轻易点击它。
将数据保存在PHP会话中,并在提交表单时更新会话中的数据。您生成的每个页面都可以使用这些数据生成。
或
如果您使用的是现代浏览器,请使用HTML5 localStorage。
或
你可以继续做你正在做的事情:)