• 締切済み

Perl:hiddenタグを使って二次元配列を保持する方法

Perlで、ショッピングカートのようなもの(厳密には違いますが)を 作成しております。複数画面に渡ってユーザが必要事項を入力する際の データの受け渡し方法で、どうにも詰まってしまいました。 フォームに <input type="hidden" name="hoge" value=(二次元配列)> のような形で二次元配列を埋め込み、配列の値を一連の処理のあいだ中 保持・利用したいのですが、hiddenタグに上手く配列を格納することが できません。 配列を一要素ずつ展開してhiddenに入れれば実現できましたが、要素数が 多くなる場合も考えると、できればその方法は避けたいと思います。 PerlはWebと参考書で独学で勉強しているため、(私が見つけられないだけで) オーソドックスな方法があるのではと思い質問させていただきました。 検索キーワードなどでも結構ですので、何かアドバイスいただければ幸いです。 よろしくお願い致します。

  • Perl
  • 回答数1
  • ありがとう数0

みんなの回答

  • maura
  • ベストアンサー率46% (48/104)
回答No.1

シリアライズすれば可能だと思います。 (Storable Data::Dumper MLDBM) しかし、この場合 Apache::Session など サーバー側でデータを一時保存する方法を検討しては どうでしょう?

関連するQ&A

  • perlでの三次元配列の作り方

    perlで三次元配列をテキスト入力から作りたいのですが、例えば二次元配列の場合 foreach $line (@input) push @data, [split /[:]/, $line]; で@dataが二次元配列になるのですが、三次元配列の場合このあとに push @output, \@data; とするとリファレンスが同じであるためループをまわしてもうまく三次元になりませんよね。 解決法はありますでしょうか?

  • 二次元配列が、勝手に一次元配列になってしまう

    Excelのマクロで、二次元配列を格納したバリアント型を戻り値とする関数を作ったのですが、… 二次元型配列のひとつの要素数が1の時、受け取ったバリアント型変数は、一次元配列になっています。 列ベクトルなら、それもありかな~と思うのですが、なんで、行ベクトルまで、一次元配列にするんだよ~って、困っています。 シートから関数を呼んだ場合は、列ベクトルは列ベクトル、行ベクトルは行ベクトルとして、表示されるので、マクロの中で関数を呼び出した場合も、行列の情報を保持できる方法があるんじゃないかと思ったのですが。 どなたか、ご教示頂けるとありがたいです。 よろしくお願いします。

  • 2次元の配列にデータを格納したい

    hoge.txtの様なファイルがあって、この値を2次元の配列に格納したいのですが、簡単に実現することは可能でしょうか? open (FILE, "hoge.txt"); foreach (<FILE>) { # この中で、2次元の配列に格納したい } hoge.txt A  1 B  2 C  3

    • ベストアンサー
    • Perl
  • strutsで2次元配列をやりとりする方法。

    こんにちは。質問です! 現在、STRUTS+Javaを使ってプログラミングしているのですが、 jspにて<logic:iterate>でループさせ 2次元配列をhidden要素に持たせるまでにはいたったのですが、 その際に、 <html:hidden name="aaa" property="str[0]" indexed="true" /> <html:hidden name="aaa" property="str[1]" indexed="true" /> 以後続く・・・ で表示すると、HTML表示で、 <INPUT type="hidden" name="aaa[0].str[0]" value="あああ"/> <INPUT type="hidden" name="aaa[0].str[1]" value="いいい"/> 以後続く・・・ となってしまい、サーブレットに送る際に、name属性に配列のindexが 付加されているため、strに値が入ってきません・・・ 2次元配列をjspとサーブレットでやりとりする方法を教えてください。 strとaaaの型は共にjava.util.Listです。 ご回答、よろしくお願い致しますm(_ _)m

  • javascriptでhiddenに二次元配列を格納したい

    現在、Webのシステムでクライアント側のJavaScriptから サーバー側のPHPに値を渡そうと思ってます。 その際に、JavaScriptの配列と連想配列を組み合わせた二次元配列に 値を格納してサーバー側に渡そうと思ってます。 それで以下のような方法を試しているのですが、 hiddenに二次元配列を格納する方法が分からず困ってます。 分かる方がいらしたら教えて頂けますでしょうか。 よろしくお願いいたします。 =========================================== var actionName = document.forms[0].action; var bodyObj = document.body; var formObj = document.createElement("FORM"); var hiddenObj = document.createElement("HIDDEN"); formObj.name = "updateTest"; formObj.action = actionName; formObj.method = "post"; hiddenObj.name = "alltest[][]"; var norArr = new Array(); var hashArr = new Array(); var i = 1; hashArr['test'] = document.getElementById("test" + i).value; norArr[i-1] = hashArr; hiddenObj.value = hashArr; formObj.appendChild(hiddenObj); bobyObj.appendChild(formObj); formObj.submit();

  • 二次元配列のインデックスについて

    基礎的な質問かもしれませんが、ネットで調べたのですが、うまく回答が見つからなかったので、教えて下さい。 VB.netで二次元配列を扱っているのですが、この要素はどこにあるのかを知りたいのです。 一次元配列でしたら、Indexof を使えば、どこのインデックスに配置されているかが分かると思うのですが、 二次元配列の場合は、どうすればインデックス数が分かるのでしょうか。 例えば、列は0で固定だけど、どこの行にこの要素が格納されているか分からないから、行番号を知りたいと言うときです。 よろしくお願いいたします。

  • C#で、引数における一次元と二次元配列の取り扱い

    C#について質問させていただきます。 以下のようにすればそれぞれ一次元配列と二次元配列を格納出来ますが 同時に一つの引数に収めることは無理なのでしょうか?    public static void Join(string[] Ary_str){ 本文 }    public static void Join(string[ , ] Ary_str){ 本文 } そのために、例えば以下のようにしたとします。    public static void Join(object Ary_obj){ 本文 } こうすれば一次元でも二次元でも格納出来ますが 格納された値が何次元配列なのか確認するために    Ary_obj.Rank としてもエラーになってしまいます。 (1)Objectに格納した値が何次元配列なのか確認する方法か (2)一次元でも二次元でも格納できる引数の指定方法 をご存じの方、ぜひお教え願います。><

  • PHPで配列の検索方法

    PHPで下のような2次元配列があったとします。(りんご=a、みかん=bのような意味です。CSVからデータを2次元配列に格納したものです。) $data[0][0]="りんご" , $data[0][1]="a" $data[1][0]="みかん" , $data[1][1]="b" $data[2][0]="ばなな" , $data[2][1]="c" $data[3][0]="ぶどう" , $data[3][1]="d" ここで下のような1次元配列$hogeがあったとき $hoge[0]="ばなな" , $hoge[1]="りんご" 新たに1次元配列$hogehogeを用意して、2次元配列の中から"りんご"や"ばなな"に対応する文字列を探し出して $hogehoge[0]="c" , $hogehoge[1]="a" と、格納したいのですが、やり方がわかりません。 イメージとしまして、 $hoge[0]→($data[0][0]~$data[3][0]の中から探す)→($data[2][0]であるとわかる)→($data[2][0]に対応するのは$data[2][1]だとわかる)→($hogehoge[0]=cと格納) もし分かる方がおられましたらお願いします。

    • ベストアンサー
    • PHP
  • 2次元配列の配列

    VisualBasic.NETでプログラムを作っているのですが、2次元配列の配列で行き詰って困っています。 配列1~3を別に定義して、その2次元配列を配列Xという配列にひとまとめにしたいのですが、エラーが出てしまいます。 エラー内容は「配列初期化子の次元が少なすぎます」で、場所は配列Xの第1要素です。 配列1~3以降もどんどん配列を追加していく予定なので、なるべく以下の方法で書いていきたいのですが、解決法はないでしょうか? また、他にいい方法があればご教授ください。 ソースです。 ---------------------------------------- Public 配列1(,) As Integer = _ { _ {1, 1, 1}, _ {1, 1, 1}, _ {1, 1, 1}, _ {1, 1, 1} _ } Public 配列2(,) As Integer = _ { _ {2, 2, 2}, _ {2, 2, 2}, _ {2, 2, 2}, _ {2, 2, 2} _ } Public 配列3(,) As Integer = _ { _ {3, 3, 3}, _ {3, 3, 3}, _ {3, 3, 3}, _ {3, 3, 3} _ } Public 配列X(,)() As Integer = { _ 配列1, _     ←ここにエラーが出る 配列2, _ 配列3 _ } ---------------------------------------- 回答よろしくお願いします。

  • 配列の受け渡し

    こんばんは。 あるページで使用した配列を他のページでも使いたいのですが、 こういう配列を格納した変数の受け渡しって出来るのでしょうか? 普通の変数のデータを受け渡したかったら <input type="hidden" />で直接valueに変数の値を入れれば良いですが、 配列だと自分では以下のように愚直にやる方法しか分かりません。 もっとちゃんと渡せる方法ってあるのでしょうか? <?$a=array(1,2,3,4,5);?> <? for($i=0;$i<count($aaa);$i++){ ?> <input type="hidden" value="<?=$aaa[$i]?>" name="hoge[]"/> <?}?>

    • ベストアンサー
    • PHP