• ベストアンサー

1つのformに2つのsubmitボタン

を配置した場合 受け取ったPerlは その2つのどちらが押されたかを知ることができるのでしょうか? その場合どうしたら言いのでしょうか? <form method='post' action='http://perl/x.pl'> <input type='submit'/><br/> <input type='submit'/><br/> <input type='text' name='data'/> </form> で第1のサブミットが押されたときには dataを大文字で表示し 第2のサブミットが押されたときには dataを小文字で表示したいのです

  • guuman
  • お礼率86% (1043/1206)
  • CGI
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

Web屋です。OkWebの様なサイトを設計, 構築する仕事をしています。 はい。2つ以上のsubmitボタンを設置して、どちらのボタンが押されたか。 関知させる事ができます。 ポイントは、name="" と value="" を指定する事です。 2つ以上のsubmitボタンを設置する場合、value="" の内容はそれぞれ違うと思うので、name="" を指定するのだ。 と言う事を覚えておけば良いでしょう。 CGI側でパラメータを受け取る時、submitボタンに付けた name についても 取得して、その内容が value で指定した内容と同じかどうかを確認する事で、 どちらのボタンが押されたのかを確認する事が可能です。 具体的には、 HTML : <form method="post" action="http://perl/x.pl"> <input type="submit" name="sbt" value="大文字" /><br /> <input type="submit" name="sbt" value="小文字" /><br /> <input type="text" name="data" /> </form> Perl : use CGI; $cgi = new CGI; $in{'sbt'} = $cgi->param('sbt'); $in{'data'} = $cgi->param('data'); if ($in{'sbt'} eq "大文字") { # 大文字ボタンが押された時の処理 } elsif ($in{'sbt'} eq "小文字") { # 小文字ボタンが押された時の処理 } exit(0); こんな感じになります。 value に日本語など、多バイト文字を用いる場合には、 HTMLでの表示時の文字コードと、CGI側の文字コードが揃っていないと、 正しく認識されません。 HTMLも、CGIも、文字コードとして日本語EUCを利用して居れば、問題が発生する事は無いと思います。 また、HTMLの文法では、クオートはシングルクォーテーションではなく、ダブルクォーテーションを利用する事になっています。 不明点があれば、再度質問してください。

関連するQ&A

  • 2つのsubmitボタンがあるときに

    最初に書いたボタンが優先され 単にリターンキーを押したときに 最初のsubmitボタンが反応します。 後のsubmitボタンが反応するようにするにはどうしたらいいのでしょうか? つまり下記のPHPをブラウザに表示させているときにリターンキーを押したときには submit2 is pushed. と表示させるにはどうしたらいいのでしょうか? <form method="post" action="<?=$PHP_SELF?>"> <input type="text"/><br/> <input type="checkbox"/><br/> <input type="radio" name="radio"/><br/> <input type="submit" name="submit" value="submit1" tabindex=-1/><br/> <input type="submit" name="submit" value="submit2" tabindex=1/><br/> </form> <?php if(isset($_POST['submit'])) { echo$_POST['submit'].' is pushed.'; } ?>

    • ベストアンサー
    • PHP
  • 異なるformのsubmitボタンを同一行に

    配置する方法を教えてください。 <form> <p><textarea></textarea></p> <p><input type="text"/></p> <input type="submit"/> </form> <form> <input type="submit"/> </form> とすると2つのボタンは異なる行に配置されます。 改行されないで同一行に配置する方法は有るでしょうか?

    • ベストアンサー
    • HTML
  • formのボタンをsubmitしたときにアラート

    javascript で、formのボタンをsubmitしたときに アラートが出るようにしたいと思います。 下記のように作ってみましたが、うまく動きません。 どのようにすれば動くでしょうか? ご教示いただきたくお願いいたします。 <script type="text/javascript"> function(){ $('form1').submit(function(){ $.ajax({ type: 'POST', data: postData, url: 'buy.php', success: function(data){alert("購入できました");} error: function(){alert('購入できませんでした。再度お試しください');} }); return false; }); } </script> <form name="form1" id="form1" method="POST" name="form1" value="form1" action="buy.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="name" value="高橋" /> <input type="submit" value="Save"> <form/>

  • <FORM> </FORM> の中に さらに <FORM> </FORM>があるときのSUBMITボタンについて

    今、 <FORM ACTION="aaa.asp" METHOD="POST" Name="form1"> <input type="SUBMIT" value="ボタン1"> <FORM ACTION="bbb.asp" METHOD="POST" Name="form2"> <input type="SUBMIT" value="ボタン2"> </FORM> </FORM> としていて、ボタン2を押すとbbb.aspに 飛んでほしいのでに、aaa.aspに飛んでしまいます。 こういう場合どのようにすればよいのでしょうか? それぞれのボタンは hidden の値をそれぞれの フォームの中の値を渡したいので どうしてもSubmitがいいのです。

    • ベストアンサー
    • HTML
  • FORMタグ内に複数submitボタンがある場合の問題

    お世話になります。 質問タイトルがあまり適切でなくすみません。HTMLに関する質問です。 FORMタグ内に複数のsubmitボタンを配置し、FORM内のテキストボックスへフォーカスを充てた場合、Enterキーを押下すると上にあるボタンが反応してしまいます。 下のボタンを反応させたいのですが、JavaScriptを使わず下のボタンを指定する方法はあるのでしょうか。 ご存知の方いらっしゃいましたら、よろしくお願いします。 ■参考ソース <FORM id="form" action="ジャンプ先URL" > <INPUT type="text" /> <br /> <INPUT type="submit" value="ボタン1" /> <br /> <INPUT type="submit" value="ボタン2" /> </FORM>

    • ベストアンサー
    • HTML
  • FormのSubmitボタン

    こんにちは。 <table align="center"> <form action="getdata.html" method="post"> <tr> <th>Customer Name :</th> <td><input type="text" name="CustNameEdit" value=""></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="SearchButton" value="Search"> <input type="submit" name="SearchButton" value="Show All"> </td> </tr> </form> </table> このようなフォームで、CustNameEditに文字列を入力し、Searchボタンをクリック すると、getdata.htmlでSearchButtonの値は"Search"になっているのですが、 文字列入力後、キーボードのEnterキーを押すと、getdata.htmlへは行くのですが、 SearchButton変数が存在しないと言われてしまいます。 で、この現象ですが、Internet Explorer(試したのはバージョン6.0と7.0)で 発生しますが、Operaで試してみたところ、問題ありません。 何か原因として考えられることはありますでしょうか。

    • ベストアンサー
    • HTML
  • 複数のsubmitボタンを使い値を送信する

    <form action="/サーブレットへ" method="post"> <input type ="TEXT" NAME="text1"> <input type ="TEXT" NAME="text2"><br> <textarea name="zzzz" cols="100" rows="10"> </textarea> <input type="hidden" name="a1" value="3"> <input type="submit" name="a1" value="作成"> <input type="hidden" name="a1" value="2"> <input type="submit" name="a1" value="修正"> </form> 複数のsubmitを使用してそれぞれ違う、値又は変数を渡し処理をしたいのですが、わかりません。 分かる方がいましたら教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • 【FORM】 リンク文字で submit したい

    <FORM METHOD="post" ACTION="tbl_admin.html"> <A HREF="#" onClick="fnc.value='abc'; this.form.submit();">リンク文字</A><BR><BR> <INPUT TYPE="hidden" NAME="fnc" VALUE=""> <INPUT TYPE="submit" VALUE="aaa"> </FORM> と書いてみたのですが エラー:'this.form' は Null またはオブジェクトではありません。 としまいました。 <SELECT>のonChangeで同じような事は出来たのですが、 単なるリンク文字クリックでこのようなことはできないのでしょうか。 可否をご存知の方、また実現方法等ご存知の方 いらっしゃいましたらご教示願います。 よろしくお願い致します。

  • エンターでsubmitさせたい

    テキストボックスが複数あるようなフォームを作っているのですが、 submitボタンを表示させず、エンターのみで動作するものを作りたいと思っています。 stype="display:none;"で表示を消すことができたのですが、 エンターを押しても動作しません。 ご存知の方教えて頂けると大変助かります。 <form method="post"> <input type="text" size="10" name="obj1"> <input type="text" size="10" name="obj2"> </form> <? print $_POST['obj1']."<br>"; print $_POST['obj2']."<br>"; ?>

    • ベストアンサー
    • PHP
  • <form>タグに2つのボタン

    <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは  フィールド「CASE」に1を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは  フィールド「CASE」に2を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう