• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一つの画面で複数のパラメータを渡したい。)

一つの画面で複数のパラメータを渡す方法とは?

このQ&Aのポイント
  • perlでcgiを作成しており、一つの画面で複数のパラメータを渡したい場合、HTMLのsubmitボタンは一画面に一回しか記述できないため、別の方法が必要です。
  • 入力エリアごとに変更ボタンを設置し、押下されたボタンに対応するパラメータをコール元に渡すようにすると、複数のパラメータを渡すことができます。
  • 詳しい方法はコード上での条件分岐とパラメータの受け渡しを行うことで実現できます。具体的な方法についてはコード例を参考にしてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

パラメータの渡し方が分からないので正確には答えられませんが、 入力エリアAと入力エリアBを分けないで、 全体を<form>で括れば値を受け渡せると思います。 ところで、 if (p == A) とやっても p や A は変数ではないので、tureの処理はしないと思いますが。

cardy55
質問者

お礼

moon_night様ご回答ありがとうございます。お二方のご回答で何とか成りました。ありがとうございました。

その他の回答 (1)

  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.2

複数のINPUTの値を一つのsubmitで渡したい場合は<FORM>を使用します。 <FORM METHOD=GET ACTION="値を渡したいCGIファイル名> <INPUT TYPE=HIDDEN NAME="y" VALUE=2006> <INPUT TYPE=HIDDEN NAME="m" VALUE=03> <INPUT TYPE=HIDDEN NAME="d" VALUE=27> <INPUT TYPE=submit VALUE="送信"> <INPUT TYPE=reset VALUE="取消"> </FORM> そうすると、値を受け取る側では local($Query_String) = $ENV{'QUERY_STRING'}; @pairs = split(/&/,$Query_String); foreach $pair (@pairs) {  ($name, $value) = split(/=/, $pair);  $value =~ tr/+/ /;  $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;  $QUERY{$name} = $value; } というロジックで、y=2006&m=03&d=27という値を受け取れます。 このロジックでは、$QUERYという連想配列に値をセットしています。

cardy55
質問者

お礼

PrintScree様大変丁寧な説明ありがとうございました。理解が深まりました。また別の問題も発生しております。よろしければそちらもご協力下さい。

関連するQ&A