• ベストアンサー

submit から変数を渡せませんか?

フリーのCGI(perl)を改良中ですが、submitボタンからCGIに変数を渡せませんか? ほとんど同じ内容で、少しだけ違う事を実行させたいので、submitボタンを二つ作って  submit(1)なら$hogeにAを、  submit(2)なら$hogeにBを与えてCGIに渡す。 と言うようなことをしたいです。 やはり別に書かないと不可能でしょうか? 宜しくお願い致します。

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

以下で送信を試してみてください。 <html> <head> </head> <body> <form method="get"> <input type="text" name="x" value="z"> <input type="submit" name="submit" value="送信A"> <input type="submit" name="submit" value="送信B"> </form> </body> </html> type="submit"もnameを与えればvalueが送信されるのがわかると思います。 というわけでボタンのvalueで判別可能です。 (ただし、テキストフィールドでエンターキーを押されて送信された場合の扱いには注意が必要です)

asdfg456
質問者

お礼

御礼が遅くなり申し訳ございません。 昨晩、CGIを書き換えたところ希望通りに動作いたしました。 type="submit"にもnameを与えてやればvalueが送信されているのが よ~く解りました。 ありがとうございました。

その他の回答 (1)

回答No.1

こんにちは。例えば、GETで http://www.example.com/index.cgi?hoge=A などと送ることができればいいのでしょうか。それでしたら、フォーム内にtextかhiddenのinputを作成し、ボタンクリックで以下のようなJavascriptを動かしてみてはどうですか。 ... function sending(par) { document.form1.hoge.value=par; document.form1.submit(); } // --> </script> </head> <body> ... <form method="GET" action="./index.cgi" name="form1"> ... <input type="button" name="A" value="Select A" onClick="javascript:sending(this.name)"> <input type="button" name="B" value="Select B" onClick="javascript:sending(this.name)"> <br> <input type="text" size="1" name="hoge" value=""> ... </form> ... 手早く作ったので、間違っていたらごめんなさい。適当に応用して下さい。

asdfg456
質問者

お礼

レスありがとうございました。 今回は1つのinput typeだけでsubmitからの変数を受け取りたかったので steel_gray様の教えを実践させていただきました。 今回教えていただいた方法は、また次回の機会に試めさせていただきます。 どうもありがとうございました。