• ベストアンサー

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

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

  • Perl
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • 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様の教えを実践させていただきました。 今回教えていただいた方法は、また次回の機会に試めさせていただきます。 どうもありがとうございました。

関連するQ&A

  • html同士の変数引渡し

    「a.htm」→「b.htm」→「test.cgi」(perl)の画面遷移しています。 「a.htm」→「b.htm」の間で「a.htm」に <input type=submit value="送信する">が記入されてます。 送信ボタンを押された時に商品番号を「b.htm」へ表示したいのですが どう変数を引き渡せばよいか解らず投稿しました。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • CGI(PERL)でsubmitボタンを押すことが出来ますか?

    畏れ入ります。 perlで 生成したHTML上の submitを実行することは出来ますか? 人間がボタンを押すのではなく、 例えば、5秒たったら、submitをCGIがする、といったようなことです。

    • ベストアンサー
    • CGI
  • use スカラー変数とするには・・・

    初心者PERLプログラマーです。 独学で身の回りにPERL仲間がいないため、質問させてください。 スカラー変数を使用してモジュールをuseしたいのですが、どうしてもできません。調べてみましたが検索力の無さからか見つからず… 現在のコードをはしょって書きます ----------------------- my $a = "Hoge"; use $a; my $b = new $a(); $b->run; ----------------------- $aの部分を変数にせず、use Hoge;と書くとうごくので、変数にしたことによるエラーだと思います。 $aを"$a"としてみたりしてもダメでした。 わかるかたご教授いただければ幸いです。

    • ベストアンサー
    • Perl
  • ブラウザを使用しないでプログラムから変数を送る方法

    通常、 ・GETの場合 <a href=http://www.xxx.co.jp?a=1>submit</a> ・POSTの場合 <form method=post action="xxx.cgi"> <input type=hidden name=a value=1> <input type=submit value=submit> </form> のなどのHTMLでクリックまたはSUBMITボタンを押すとその特定のURLのWWWサーバーに変数が送られますよね。 これをブラウザを使用せず、サーバーのプログラム(perl)を使用して、そのプログラムを実行すると プログラムで指定した特定のURLのwwwサーバー(port 80)に変数を送る方法書き方を教えて下さい。 GETの場合、POSTの場合それぞれ教えてください。 通常、ブラウザがしていることを、プログラムでしたいと思っています。 よろしくお願いします

    • ベストアンサー
    • CGI
  • ページ間での変数の受け渡し

    6つのhtmlファイルと6つのperlファイルからなるアンケートページを作成しています。 ページを遷移するごとに、perlファイルを実行し、未入力があれば、エラー表示、条件を満たせば、ファイルを作成し、内容を書き込み処理させています。 ただ集計に関しては、最後のhtmlファイルのsubmitボタンを押したときにすべて集計をさせたいと考えています。(各設問ごとの集計ファイルは作成済み) 最後のページの処理に対応するperlファイルに最初のページからの変数を宣言していますが、うまく集計されません。どのようにすれば、最後のページのsubmitボタンを押せば集計されるようになるのでしょうか? うまく伝わっているかわかりませんが、宜しくお願いいたします。

  • フォームのボタンをSUBMITから画像にしたいのですが…

    フォームを使って値を渡すのに <INPUT TYPE=SUBMIT NAME=WORD VALUE='*****'> とボタンを作成し、VALUEの値 (中身を確認、とか送信実行とか) で動作を分岐し、実行していました。 このボタンを画像にしたいのですが、 値を渡すのはGETじゃないと無理でしょうか? (今まではPOSTで送信) ボタンを画像にするとなると <A HREF='**.cgi'><IMG SRC='**'></A> となるので、 <A HREF='**.cgi?key=****'><IMG SRC='**'></A> のように、する必要があるのかなぁ?と思いまして… せっかくPOSTで受け取るようにCGIを作成したので、 できればPOSTのままで使用できればと思うのですが。 (無理ならGETに変更するしかないですけど) VALUEの値はボタンでは送信できないので、 <INPUT TYPE=HIDDEN NAME=WORD VALUE='****'> として渡そうと思ってます。 他に何かよい方法あるでしょうか? ※Perl使用です。

    • ベストアンサー
    • Perl
  • CGIからCGIを、CGI環境変数付きで実行するには?

    CGI(Perl)からCGI(Perl)を実行してその出力を得るには どうしたら良いでしょうか。 そのCGIがもっている環境変数(IPアドレスとか、POSTデータ)も 渡したいのですが・・・。 Openでパイプを使ってやればいいとまではわかり、 環境変数などを渡さないで純粋にCGIを実行させて その出力を受け取るところまでは出来ました。

    • ベストアンサー
    • Perl
  • submitボタンを二つ用意したい

    textに入力したものを二つのsubmitボタンで共用できるようにしたいと考えています。 作ってみたのですが、思ったように動かずに困っています。 ↓をどのように修正すれば動くでしょうか。 よろしくおねがいします。 <html> <body> <form name="hoge" action="hoge1.php" method="post"> <div class="ok_left"><input name="kw" value="" /> <script type="text/javascript"> <!-- function pushSubmit (val) { with(document.hoge){ if(val=='2'){ action = 'http://hoge.jp/hoge2.php'; } submit(); } } --> </script> <a href="javascript:pushSubmit('1');"><input name="submit1" type="submit" value="1"/></a> <a href="javascript:pushSubmit('2');"><input name="submit2" type="submit" value="2"/></a> </form> </body> </html>

    • ベストアンサー
    • HTML
  • submitでのデータの受け渡しについて

    submitにてデータを受け渡すときについての質問となります。 変数を一つ受け渡す場合はこのようにすればいいと思うのですが、 print start_form; print submit('abc'); print hidden( -name => 'sample', -value => $a ); print end_form; 2つ以上の変数を受け渡す時には、どのようにすれば良いのでしょうか。 my $a = "red"; my $b = "black"; my @ab = ($a, $b); print start_form; print submit('color'); print hidden( -name => 'sample', -value => @ab ); print end_form; ####################################### my ($a, $b) = param('sample'); print $a; print $b; というふうにすると、print $a;はredを表示してくれますが、 $bにはblackは入っておらず表示してくれません。 どのようにすれば、配列を渡して、変数2つを受け取ることができるのでしょうか?? ご回答よろしくお願い致します。

    • ベストアンサー
    • Perl
  • PHPの不等式に変数を使う

    いつもお世話になります PHPの不等式に変数を使うことは出来ますでしょうか? 例えば $a = 'huga'; $b = 'huga'; if($a == $b){ echo 'hoge'; } 結果 hoge 右辺と左辺の間、不等式を変数にしたいです $a = 'huga'; $b = 'huga'; $c = '==' if($a $c $b){ echo 'hoge'; } 期待する結果 hoge 上のソースはもちろんパースエラーとなり成り立ちません 型変換や考えられるキーワードで検索したのですが、出てきませんでした 下のように strpos()、strstr()等で$cの内容を解析して、条件分岐すれば期待の結果が出せるのは分かります if( strpos($c,'==') !== false && $a == $b){ echo 'hoge'; } (上記で成り立つのは分かります) 教えていただきたい内容は、「不等式を変数で成り立たせる方法」です $c= '=='; PHPに詳しい方お教えいただけると嬉しいです

    • ベストアンサー
    • PHP