2013-04-09 11 views
1

我有一個多維數組,它是這樣的通過多維JavaScript數組到另一頁

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

(I希望是有道理)

其中,[1]和[4]本身,我可以訪問INFO像myArray的陣列[4] [5]。

嵌套數組的長度([1]和[4])可以varry。

我使用這種方法來存儲,計算和分佈一個非常複雜的形式的數據。

並非所有在數組中存儲的數據都會將其輸入到輸入字段,因此在調用表單的post方法時並不是所有數據都發送到下一頁。

我想以與第一頁相同的方式訪問數組。


思考:

方法1:

我想我可以將所有的數據加載到隱藏字段,發佈一切,然後拿到第二頁和負載themm這些值都回到了一個數組中,但這需要超過一百個隱藏的字段。

方法2:

我想我也可以使用。加入()到整個陣列連接成一個串,加載到一個輸入端,它張貼,並使用.split(「」)打破它回來。但如果我這樣做,我不知道如何處理它的多維方面,以便我仍然可以像第2頁的myArray [4] [5]那樣訪問INFO。

我將使用Javascript訪問arrary ,那些使它第1頁輸入的值會使用網頁上的PHP訪問2.


我的問題是有沒有更好的方式來acomplish我需要什麼我該怎麼設置上面提到的方法2?



這解決了我的問題:

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

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

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

'JSON.stringify' /'JSON.parse' – Ian 2013-04-09 05:50:17

+0

你可以使用'sessionStorage'嗎? – 2013-04-09 05:59:53

+0

@Jack是的,我可以從我看到的,但仍然會讓我訪問類似sessionStorage.myValue的值嗎?或者我可以把它全部轉換回數組? – DelightedD0D 2013-04-09 06:24:41

回答

3

如果可能的話,你可以使用sessionStorage使用JSON.stringify()來存儲你的對象的字符串表示:

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

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

sessionStorage有多少可以存儲的上限;我相信它大概是2.5MB,所以你不應該輕易觸及它。

+0

用於sessionStorage,IE8是否支持它? – 2013-04-09 10:35:55

+0

@Amogh是的,它應該可以在IE8中使用。 – 2013-04-09 11:22:46

1

保持數據在你的PHP會話,每當你提交表單在會話更新數據。 您生成的每一頁都可以使用這些數據生成。

OR

如果uou使用的是最新的瀏覽器,利用HTML5的localStorage的。

OR

你可以做繼續與你在做什麼:)