フォーム部分では、次のように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」で見分ける方法はあるでしょうか?
ボタンに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 }
ボタンに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にすぐ使えそうです。
試してみます。
http://okwave.jp/qa/q1284270.html
この回答が参考になります。
・ボタン名を2つとも同じ名前にする
・value名を2つとも違う値にする
これをまもれば簡単に簡単にできます。
ありがとうございます。
こちらも参考になります。
nameでわける方法と、valueでわける方法があるのですね。
ありがとうございます。
シンプルなソースで、私の書いてるCGIにすぐ使えそうです。
試してみます。