1つのフォームで2つの送信先と送信内容

このQ&Aのポイント
  • 1つのフォームで2つの送信先と送信内容を処理する方法について説明します。
  • 例えば、営業1課と2課が独自にWebページを持っていて、フォームから送信された内容を処理するCGIも独自に作成しています。
  • この場合、リストボックスに食品、日用雑貨、衣類、インテリアとし、検索語も1つのテキストボックスとし、選択に応じて送信先と送信内容を切り替えることが必要です。具体的な実装方法はJavaScriptを使用することが一般的です。
回答を見る
  • ベストアンサー

1つのフォームで2つの送信先と送信内容

例えば、処理内容はほぼ一緒なのですが、営業1課2課それぞれが独自にWebページを持っていてフォームから送信された内容を処理するCGIも独自に作っています。 ●1課のWebフォーム <FORM ACTION=http://eigyo1.jp/nanka.cgi METOD=POST> カテゴリ:<SELECT name="category"> <OPTION value="衣類" selected>衣類</OPTION> <OPTION value="インテリア">インテリア</OPTION> </SELECT><BR> 商品検索:<INPUT TYPE=TEXT NAME=hinmei> </FORM> ●2課のWebフォーム <FORM ACTION=http://eigyo2.jp/Kanka.cgi METOD=POST> カテゴリ:<SELECT name="genre"> <OPTION value="食品" selected>食品</OPTION> <OPTION value="日用雑貨">日用雑貨</OPTION> </SELECT><BR> 商品検索:<INPUT TYPE=TEXT NAME=kensaku> </FORM> これを1つのフォームでリストボックスに食品、日用雑貨、衣類、インテリアとし、検索語も1つのテキストボックスとし、食品・日用雑貨を選択するとeigyo1の方へ検索語の名前はhinmei、衣類、インテリアを選択するとeigyo2の方へ検索語の名前はkensakuで送信できる様にするにはどうしたらよいのでしょう。多分Javascript使わないとだめだということだけは分かるのですが・・・

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

<script type="text/javascript"> <!--   function submitForm ( formObj ) {     var submitURL = "";     var selValue = formObj.genre.options[formObj.genre.selectedIndex].value;     formObj.hinmei.value = "";     formObj.kensaku.value = "";     if ( (selValue=="食品") || (selValue=="日用雑貨") ) {       // 送信先を営業1のCGIへ       submitURL = "http://eigyo1.jp/nanka.cgi";       // hinmeiに検索語をセット       formObj.hinmei.value = formObj.word.value;     } else if ( (selValue=="衣類") || (selValue=="インテリア") ) {       // 送信先を営業2のCGIへ       submitURL = "http://eigyo2.jp/Kanka.cgi";       // kensakuに検索語をセット       formObj.kensaku.value = formObj.word.value;     }     formObj.submit();   } //--> </script> =================================== <form method="POST" name="search"> カテゴリ:<select name="genre"> <option value="衣類" selected>衣類</option> <option value="インテリア">インテリア</option> <option value="食品">食品</option> <option value="日用雑貨">日用雑貨</option> </select><br> <input type="text" name="word"> <input type="button" onClick="submitForm(this.form);" value="検索"> <input type="hidden" name="hinmei" value=""> <input type="hidden" name="kensaku" value=""> </form> =================================== こんな感じでいかがでしょうか? カテゴリの増減があると手直しが必要になりますが。 動作説明としては、セレクトされている値を取得して、 どちらのカテゴリに相当するか判断を行い、 送信先のURLの変更を行っています。 同時に、送信先での取得名が違うテキストに関しては、 表向きは一つのテキストボックスを用意し、 上と同じく、カテゴリの判断を行い、hidden項目で よういしたそれぞれにセットしています。 hinmeiとkensakuの両方がどちらにも送られてしまいますが問題ないと思います。

souta_n
質問者

お礼

早速のご解答ありがとうございます。 このHTMLで試してみます。 >カテゴリの増減があると手直しが必要になりますが。 質問をあげるためにかなりシンプルな形にしたので、本当はもっと複雑なんですけど、これをベースにやってみます。

関連するQ&A

  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • フォームを送信して選択股をそのままにしたい

    フォームを送信してそのフォームで選択した内容を フォームの下の部分に表示するようなプログラムを作りたいのですが 送信するとフォームの選択内容が戻ってしまいます。 選択を保持して表示するにはどうしたらよいですか? 路線情報の検索みたいな感じにしたいということです。 ****self.php**** <html> <head></head> <body> <form action='self.php' method=get> <select name='num' id='num'> <option name='5' value='5'>5</option> <option name='7' value='7'>7</option> </select> <br><input type=submit value='送信'> <form> <script language="javascript"> document.open(); document.write(<?php print $_GET["num"]; ?>); document.close(); </script> </body> </html>

  • プルダウンメニューでフォームのターゲット先を変更したい。

    プルダウンメニューでフォームのターゲット先を変更する方法をしえてもらえませんか? 下記の様にすると_topを指定しても新しいウィンドウが開いてしまいます。 <FORM name="test2" action="http://hoge.cgi" target=yyy.value> <INPUT type="text" size="34" name="word"><SELECT name="search"> <OPTION value="yahoo" selected>Yahoo!Japan</OPTION> <OPTION value="google">google</OPTION> </SELECT> <SELECT name="yyy"> <OPTION selected>窓選択</OPTION> <OPTION value="_blank">別窓</OPTION> <OPTION value="_top">同窓</OPTION> </SELECT> <INPUT type="submit" value="検索"> </FORM>

  • メールフォームでプルダウンの内容だけ送られてこない

    HTMLファイルでデザインができるメールフォームのcgiで、 名前とEメールアドレスは送られてくるのですが プルダウンの内容だけ、送られてこないんです。 ちなみに携帯サイト用です。 プルダウンの入れ方がおかしいんだと思うのですが 何がいけないのでしょうか? --------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>フォームメール</title> </head> <body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#0000FF"> <center>フォームメール</center> <hr> <form action="./mail.cgi" method="${INFO_METHOD}"> <input type="hidden" name="system_mode" value="preview"> <input type="hidden" name="need_input_message" value="1"> 名前<br> <input type="text" name="system_name" value=""><br> Eメール<br> <input type="text" name="system_mail" value=""><br> テスト<br> <select name="test01"> <option value="" selected="selected">選択してください</option> <option value="テスト1">テスト1</option> <option value="テスト2">テスト2</option> <option value="テスト3">テスト3</option> <option value="テスト4">テスト4</option> </select> テスト<br> <select name="test02"> <option value="" selected="selected">選択してください</option> <option value="テスト1">テスト1</option> <option value="テスト2">テスト2</option> <option value="テスト3">テスト3</option> <option value="テスト4">テスト4</option> </select> <br> <input type="checkbox" name="system_copy" value="on" checked> 送信者にコピーを送る<br> <br> <input type="submit" value="確認画面へ"> </form> <hr> ▲<a href="${INFO_BACK}">戻る</a> <hr> </body> </html> --------------------------------------- 今はこうなってます。 何か間違っている箇所、足りない箇所がありましたら ぜひ教えてください。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • selectでのフォーム送信

    下記の質問で別の解決手順を思いついたのですが技術力が不足しているのでどなたか助けてください。 フォームのselectが変更されたときに、そのフォームの内容をcgiファイルに送信するようなスクリプトがどこかにありませんか。具体的には、 <form name="form1" method="get" action="・・・.cgi"> <input type="text" name="text" size=20> <select name="sele" onChange()> <option・・・ <option・・・ </select> </form> といったフォームで、onChange()のなかでform1をsubmitしたのと同じ結果になるようにJavaScriptを書き込みたいのです。 どうかよろしくお願いします。

  • 複数のフォームから送信

    複数のフォームからtextの値を送信したいのですができますか?〒番号を入力して検索ボタンをおすと住所がでてきて最後に登録をしたいです。検索だけのプログラムはできてますがフォームを二つにすると両方のsubmitが登録になります・・・ 一応自分でいろいろためしましたがだめでした。。。 html,php,javascriptです。 二つともだめでした。。。。 rei1.php ------------------------- <html> <body <form method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> <br> <form method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> -------------------------------------- rei2.php -------------------------------------- <html> <head> <script language="javascript"><!-- function send() { document.nform.submit(); document.nform2.submit(); document.nform3.submit(); } //--></script> </head> <body> <form name="nform" method="POST" action="1.php"> お名前:<input type="text" name="name"> <br> </form> <form name="nform2" method="POST" action="yubin.php"> 〒:<input type="text" name="yubin"> <input type="submit" value="検索"> <br> 住所:<input type="text" name="zyu"> <br> </form> <form name="nform3" method="POST" action="1.php"> メールアドレス:<input type="text" name="email"> <br> <input type="submit" value="登録する"> </form> </body> </html> ------------------------------------

  • 変数にフォーム名を指定したい

    下のスクリプトは、プルダウンメニューの項目を選択するとフォームにそのvalueを渡すものです。 フォームに original という name を指定しています。 putselect関数の中の document.reg.original の original を直で打つのではなく、 putselectの引数として、指定したのですがどのようにすると良いでしょうか? JavaScript function putselect(obj){ document.reg.original.value = obj.options[obj.selectedIndex].value; } HTML <form name="reg"> <input name="original"> <select onchange="putselect(this)"> <option >#作品の選択</option> <option value="a">A</option> <option value="b">B</option> <option value="c">C</option> </select> </form> <hr> こうなってほしい。 function putselect(obj,フォーム名の変数){ document.reg.フォーム名の変数.value = obj.options[obj.selectedIndex].value; } HTML <form name="reg"> <input name="original"> <select onchange="putselect(this,original)"> <option >#作品の選択</option> <option value="a">A</option> <option value="b">B</option> <option value="c">C</option> </select> </form> <hr> これと同じ動作であれば、nameでなくidなどでも構いません。 よろしくお願い致します。

  • ボタン無しでフォーム内容送信

    <form name="regist" action="bbs.cgi" method="POST"> <input type="hidden" name="mode value="admin"> <textarea name=comment cols=50 rows=5 wrap=soft>コメント</textarea> <input type="submit" value="ボタン"> </form> 通常はボタンをクリックして移動しますが、送信ボタンを使わずに、bbs.cgiを表示しただけでフォーム内データを送信できればと考えています。どのようにすればいいのでしょうか。

  • フォームで絞込み検索機能を持たせるには?

    CGIでキーワード検索システムを使用していますが、FORM等であらかじめ一部の語句だけを設定してお き、絞込み検索機能も持たせたいと考えています。ただデータを渡す際にうまくいきません。 どなたかデータの引渡しに関して、いい方法があればご教授ください。 使用想定例: <form method="POST" action="./search.cgi" enctype="multipart/form-data"> <select name="search"> <option value="" selected="selected">指定なし</option> <option value="ア行">ア行</option> 中略 <option value="ワ行">ワ行</option> </select> <select name="search"> <option value="" selected="selected">指定なし</option> <option value="Men">男性</option> <option value="Women">女性</option> </select> <select name="search">選択項目</select> は追加したいと考えています。 <input type="text" name="search" size="30" value="" /> <input type="submit" name="SUBMIT" value="検索" /> </form> タグ入力で  http://xxxx.com/search.cgi?search=ア行,Men と入力した場合、絞込み検索ができるようにはなっています。(カンマでand検索) ただ、自分の考えている例だと  http://xxxx.com/search.cgi?search=ア行&search=Men&search= のようにデータが渡されてしまい、検索対象全てがヒットしてしまいます。 フォームのNAME属性が同じものを「,」で連結する。みたいな動作ができればベストなんでしょうが 。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP

専門家に質問してみよう