1

このような多次元配列があります

  • [0]文字列
  • [1]-->[0]文字列、[1]文字列、[2]文字列
  • [2]文字列
  • [3]文字列
  • [4]-->[0]文字列、[1]文字列、[2]文字列[3]文字列、[4]文字列、[5]情報

(それが理にかなっていることを願っています)

ここで、[1] と [4] はそれ自体が myArray[4][5] のようにINFOにアクセスできる配列です。

入れ子になった配列 ([1] と [4]) の長さはさまざまです。

この方法を使用して、非常に複雑なフォームにデータを保存、計算、および配布します。

配列に格納されたすべてのデータが入力フィールドに送信されるわけではないため、フォームの post メソッドが呼び出されたときにすべてが次のページに送信されるわけではありません。

次のページでも、最初のページと同じ方法で配列にアクセスしたいと思います。


考え:

方法 1:

すべてのデータを非表示フィールドにロードし、すべてを投稿してから、2 ページ目にそれらの値を取得し、すべてを配列にロードし直すことができると思いますが、それには 100 を超える非表示フィールドが必要になります。

方法 2:

.join() を使用して配列全体を 1 つの文字列に連結し、それを 1 つの入力にロードして投稿し、.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 に答える