人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlでフォーム部品を使った CGIを作っています。
フォーム部分では、次のように2種類の送信ボタンを作っています。

<form name="test" action="test.cgi" method="post">
<input type="submit" value="処理1を実行"><br>
<input type="submit" value="処理2を実行"><br>
</form>

「処理1を実行」ボタンが押されたときと、「処理2を実行」ボタンが押されたときとで
違う処理を行いたい(CGI内の違うサブルーチンを実行したい)のですが、
どうやって処理を分けたらいいのでしょうか?

どちらのボタンが押されたのか、呼び出された「test.cgi」で見分ける方法はあるでしょうか?

●質問者: uta_at_home
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI Perl test サブルーチン ボタン
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● koriki-kozou
●200ポイント ベストアンサー

ボタンにnameをつけておけば、押されたほうのnameとvalueが送られてくる

<input type="submit" name="s1" value="処理1を実行"><br>
<input type="submit" name="s2" value="処理2を実行"><br>

test.cgi のほうではs1、s2のどちらが存在するかによって処理を分ければいい

my $s1 = param('s1') || '';
my $s2 = param('s2') || '';
if (param('s1') != '') {
 処理1
} else if (param('s2') != '') {
 処理2
}
◎質問者からの返答

ありがとうございます。

シンプルなソースで、私の書いてるCGIにすぐ使えそうです。

試してみます。


2 ● hanako393
●100ポイント

http://okwave.jp/qa/q1284270.html

この回答が参考になります。

・ボタン名を2つとも同じ名前にする

・value名を2つとも違う値にする

これをまもれば簡単に簡単にできます。

◎質問者からの返答

ありがとうございます。

こちらも参考になります。

nameでわける方法と、valueでわける方法があるのですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ