1つのformで複数のactionを実行できますか?

このQ&Aのポイント
  • フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか?フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・スタイルシートではデザイン上無理でした。
  • フォーム内に商品の購入ボタンと商品名でグーグルのサイト内を検索できるボタンを設置したいですが、1つのformで複数のactionを実行することはできますか?フォームの入れ子は避けたいので、もしくはJavaScriptで検索を行えば良いのですが、デザイン上の制約があります。
  • フォーム内に商品の購入ボタンとグーグルでサイト内検索を行うボタンを配置したいのですが、1つのフォームで複数のactionを実行することは可能でしょうか?フォームの入れ子を避けたいのですが、デザイン上の制約があります。JavaScriptを使用して検索を行う方法もありますが、できればフォーム内に並べたいです。
回答を見る
  • ベストアンサー

1つのformで複数のactionを実行できますか?

フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか? フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・ スタイルシートではデザイン上無理でした。 <form id="fm" name="fm" action="URL" method="POST"> <input type="hidden" name="shouhinmei" value="商品名"> <input type="hidden" name="kakaku" value="500"> <input type="image" src="kounyuu.gif value="購入"> <form method=get action="http://www.google.co.jp/search"> <input type=hidden class="q" name=q value="商品名"><input type=hidden name=ie value=UTF-8><input type=hidden name=oe value=UTF-8><input type=hidden name=hl value="ja"><input name=btnG type="image" src="検索.gif value="検索"><input type=hidden name=sitesearch value="サイトのURL"></form> </form> </form> +----+  +----+ |購入|  |検索| +----+  +----+

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

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

では、以下のような感じで。 なるべく多くのブラウザで動くように書いたつもりですが検証は充分行ってください。 <html> <head> <title></title> <script type="text/javascript"> <!-- function searchGoogle(q) { document.forms['searchForm'].elements['q'].value=q; document.forms['searchForm'].submit(); return false; } //--> </script> </head> <body> <form action="URL"> ~~ <input type="image" src="kounyuu.gif value="購入"> <a href="http://www.google.co.jp/" onclick="return searchGoogle('商品名')"><img src="検索.gif" border=0></a> </form> <form action="http://www.google.co.jp/search" id="searchForm" style="display:none;"> <input type=hidden name="q"> <input type=hidden name=ie value="UTF-8"> <input type=hidden name=oe value="UTF-8"> <input type=hidden name=hl value="ja"> <input type=hidden name=sitesearch value="サイトのURL"> </form> </body> </html>

toutetsu
質問者

お礼

steel_grayさん。お返事遅くなってすみません。 教えていただいた内容で希望通りのものができあがりました。 本当にありがとうございます。 document.form.submitを使って試行錯誤していましたが、<script>内がうまく書けませんでした。 なるほどここはこうやって書くのですね。 formもスタイルシートのdisplay:none;で見えなくするという発想も驚きでした。 まだまだ勉強することが多そうです。 なるべく自力で解決するよう頑張りますが、行き詰ったときにはまた教えていただければ幸いです。

その他の回答 (3)

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

> スタイルシートでは無理でした。 ということですが無理ではないと思います。 もう一度挑戦してみては? 以下は一例ですが他にもやりようはあると思います。 <form action="URL"> <input type="submit" value="購入" style="float:left;"> </form> <form action="URL" style="display:inline;"> <input type="submit" value="検索"> </form>

toutetsu
質問者

補足

steel_grayさん、いつも回答いただきありがとうございます。 確かにボタンだけならfloatを使うことができますね。 しかし今回はデザインの都合上、購入ボタンのあるformは大きなボックスとなってボタンを包んでいるのです。 検索ボタンをtop: -25px; left: 150px; のようにしたりもしましたが、IE6でブラウザ上は問題なく見えるもののDreamweaverのプレビューで大きく崩れてしまうのです。 PCに不慣れなクライアントがDreamweaverで更新作業させますのでこれだと作業場所と見栄えが一致せず支障があります。 できればフォームの中に入れてしまいたいのです。 何かよい解決方法がありましたら教えてください。

  • tyunji
  • ベストアンサー率19% (68/349)
回答No.2

一旦他のページに飛ばして、そこで分岐させてはどうでしょう? 以前PHP(+Java Script)でそういう構造のを書きましたが、飛ばした後の分岐はCGIやJAVAでも可能でしょう。飛ばす先は他のページではなく自ページでも良いです。

toutetsu
質問者

補足

yambejpさん、早速の回答ありがとうございます。 分岐のコードを製作するのはJava Script初心者の私にとっては質問の内容と同じかそれ以上に難しく感じられます。 いろいろ検索してみたところ、document.form.actionかdocument.form.submitでできそうな気がします。もう少し調べてみます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

formにidを振って、actionを書きかえればできる とは思いますが、極端なクライアント依存で、 あまりお勧めできません。 例えば、検索と購入をラジオボタンで選ばせて submitは「実行」とするとか、 検索をおすとhiddenに指定されたsearchという 項目にtrueをいれるとか、そういうパラメータで 受け取ったaction側が判断するのがあるべき フォームの使いか方かとおもいます。

toutetsu
質問者

補足

yambejpさん、早速の回答ありがとうございます。 せっかく教えていただいたのですが、内容が高度過ぎて残念ながら半分程度しか理解できませんでした。 >例えば、検索と購入をラジオボタンで選ばせて >submitは「実行」とするとか、 これは購入するにも検索するにもユーザが2度クリック(ラジオボタンと実行ボタン)しなければならず、不親切ではありませんか? フォームの使い方としては正しいのでしょうが・・・

関連するQ&A

  • 複数FORMの一括実行について

    通常であれば同一サイト内に下記のソース(フォーム)が入るのですが、 これを改良しサイト上で希望の送信先をチェックボックスで選択し一回の操作で複数のcgiを実行したく思います。 良いcgiがあれば教えてください。 又は改造ができるcgi、修正方法を分かりましたらお教え願います。 サイトA <form action="https://aaa.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form> サイトB <form action="https://bbb.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form> サイトC <form action="https://ccc.cgi" method="post"> <input type="hidden" name="名前" value="name"> <input type="hidden" name="メール" value="mail"> <input name="Submit" type="submit" value="送信"> </form>

    • 締切済み
    • CGI
  • フォームで同じ複数のnameで違うvalueの送信

    始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは 一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、 phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、 どうすればいいのでしょうか?・・・以下タグです。 昨日から、ここから先に進めません。。 先輩方助けてください、本当によろしくお願いします。 <form action="http://hoge.net/hoge/hogecheck.php" method="post"> <input type="hidden" name="site" value="hoge"> <input name="id" type="text" id="idform" maxlength="10" /> <input type="hidden" name="kin" value="3000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="5000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="10000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="20000"> <input type="image" src="buybtn.gif" /> </form>

    • ベストアンサー
    • Java
  • 一つのformで、複数のaction指定

    レイアウトなどの関係で、formの配置が基本とは異なるものになってしまい、うまく動作させる方法が見つからず困っています。 現在は <form> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> </form> …… <form method="POST" action="A.php"> <input type="submit" name="aa" value="あああ"> </form> <form method="POST" action="B.php"> <input type="submit" name="bb" value="いいい"> </form> <form method="POST" action="C.php"> <input type="submit" name="cc" value="ううう"> </form> <form method="POST" action="D.php"> <input type="submit" name="dd" value="えええ"> </form> のようになっていて、チェックボックスの値を送信したいのは、Dのボタンを押したときだけPOSTされるようにしたい状態です。 この値を取得する方法か、もしくは <form method="POST" action="(ボタンに応じたもの)"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> <input type="checkbox" name="select[]" value="●●"> …… <input type="submit" name="aa" value="あああ"> <input type="submit" name="bb" value="いいい"> <input type="submit" name="cc" value="ううう"> <input type="submit" name="dd" value="えええ"> </form> このように、一つのフォームの中に埋めてしまい、actionに入る値をボタンによって分ける方法はありませんでしょうか? もしくは他の方法でも構いません。 お分かりの方がいましたら、是非ご教授お願いいたします。

    • 締切済み
    • PHP
  • 一つのページで二つのFormを別々に使いたい

    <body> <form name="fm1"> <input type="hidden" value="1" id="page"> <input type="button" value="送信する" onClick="execute()"> </form> <form name="fm2"> <input type="hidden" value="2" id="page"> <input type="button" value="送信する" onClick="execute()"> </form> <div id="container">content</div> </body> </html> 上記のように同じ関数execute()を実行するのですが、受け渡す値がvalue="1" と value="2"と別々になっています。 素人考えではフォームfm1とfm2とは別々の値(1or2)を渡すと思ったのですが、どちらのボタンを押してもvalue="1"の結果となります。 二つのフォームを別々に動作させるにはどのようにすればよいでしょうか。

  • Submitが使えないFormでのデータ送信

    次のようなFORMでSubmitがなくって画像クリックし、次の画面へ いく場合ですが、どういうコードを書けばいいのでしょうか? よろしくお願いします。 <FORM name=myForm action=http://abc.com/abc.cgi method=post> <TD> <INPUT type=hidden value=itemA name=mycmd> <INPUT type=hidden value=9999 name=myid> <INPUT type=image src="/img/image.gif" border=0 name=item> </TD> </FORM>

  • 同一ページで複数のformを扱う場合

    同一のページ内にhiddenでIDを振った削除ボタンを用意しクリックされたIDを取得するにはどのようにすれば良いでしょうか? <form action="/test.php" name="1" method="post"> <input type="hidden" name="id" value="1" /> <input type="submit" name="delete" value="削除"> </form> -- 省略 <form action="/test.php" name="10" method="post"> <input type="hidden" name="id" value="10" /> <input type="submit" name="delete" value="削除"> </form> formにnameを振ってみても最後のIDがPOSTされてしまいます。

    • 締切済み
    • PHP
  • formタグのactionについて

    PHPを勉強している初心者ですが、 HTMLでつまづいています。 formタグのactionでは通常、送信先のファイルを指定すると思いますが、 action="?"と記載されています。 この場合どのような動きになるのでしょうか。 <form action="?" method="POST"> <img src="image.php?time=<?=$time?>&key=<?=$key?>"> <br> 画像の文字列:<input type=text name=image_key></td> <br> <br> <input type=hidden name=time value="<?=$time?>"> <input type=hidden name=key value="<?=$key?>"> <input type=submit value="ログイン"> <br> <hr> copyright(C) <a href="http://php.to/">http://php.to/</a> </form>

    • ベストアンサー
    • HTML
  • formタグのactionを切り替えたい。

    現在、formの作成で悩んでいます。 例えば (1)魚を検索(action="fish.php") (2)肉を検索(action="meat.php") (3)野菜を検索(action="vegetables.php") の3つがあり、それぞれactionが上記の様に別だとします。 これを一つのフォームで検索をしたいと考えています。 <form action="ここを切り替えたい" method="get"> <select class="" name="search_type" id="search_type"> <option value="fish">魚</option> <option value="meat">肉</option> <option value="vegetables">野菜</option> </select> <input name="search_keyword" id="search_keyword" value="" type="text"> <input src="search_button.gif" alt="検索" type="image"> </form> 上記の様なhtmlだとして、selectの選択によってactionを切り替え検索をしたいと思っています。 色々とgoogle等で検索してみたのですが、良い方法が見つからず皆様のお力をお借りしたく、投稿しました。 是非とも、ご教授とご指導を宜しくお願い致します。

  • <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 action ボタンの作り方

    form actionでボタンを作っているのですが、 a href リンクではないためか、カーソルを合わせても矢印の表記が変わりません。 具体的には以下のようなコードになっています。 <FORM ACTION="#" METHOD="POST"> <INPUT TYPE="HIDDEN" NAME="aid" VALUE=" "> <INPUT TYPE="HIDDEN" NAME="pt" VALUE=" "> <INPUT TYPE="HIDDEN" NAME="iid" VALUE=" "> <center><INPUT style="width: 200px; padding: 15px 15px; font-size: 1.2em; background-color: #2e2e2e; color: #fff; border-style: none; border-radius: 5px; border-bottom: 3px solid #000;" TYPE="submit" NAME="submit" VALUE=" "></center> </FORM> カーソルを合わせたときに矢印表記が変わるようにするためには、どのようにコードを直せばいいでしょうか。

専門家に質問してみよう