• ベストアンサー

フォーム

こんにちは。HTMLのフォームについて質問です。 下のようなソースで、bbbの送信ボタンを押した時にはAAAの内容とBBBの内容を、cccの送信ボタンを押した時にはAAAの内容とCCCの内容を送信する、という方法はありますでしょうか。 実際に作成しているものは、BやCの形が20件ほどあるので、AAAをBとCのフォームにそれぞれ書くというのは非常に効率が悪く、「他にもいい方法があるよ」というものでも結構ですので教えていただけたら、と思います。 <form name="formA"> <input type="text" name="AAA" /> </form> <form name="formB"> <input type="text" name="BBB" /> <input type="submit" name="bbb" /> </form> <form name="formC"> <input type="text" name="CCC" /> <input type="submit" name="ccc" /> </form>

  • HTML
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.2

・ 一つの方法として、送信する前にformAのデータをそのフォームに追加するための共通の関数addA()を作ってみました。 ・ 簡単のためformAのデータは1つの場合にしていますが、必要な物をすべて追加するように変更してください。   名前がダブらないようにしておけば、 t1.name = "hidden1"; は t1.name = "AAA"; とすればよいでしょう。 以下のコードを参考にしてみてください。 ------------------------------------------------------------ <html> <head> <script type="text/javascript"> <!-- function addA(f) { var t1 = document.createElement("input"); t1.type = "hidden"; t1.name = "hidden1"; t1.value = document.formA.AAA.value; f.appendChild(t1); return true; } //--> </script> </head> <body> <h1> addA before submit </h1> <form name="formA"> <input type="text" name="AAA" /> </form> <form name="formB" onSubmit="return addA(this);" action="query.jsp or query.php or query.cgi"> <input type="text" name="BBB" /> <input type="submit" name="bbb" /> </form> <form name="formC" onSubmit="return addA(this);" action="query.jsp"> <input type="text" name="CCC" /> <input type="submit" name="ccc" /> </form> </body> </html>

salisa
質問者

お礼

回答ありがとうございます。 これならHTMLのコードが長くならず、送信データも多くならずに済みそうですね。この方法でみたいと思います。

その他の回答 (1)

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

考え方は2つ 送る側で調整するか、受け取る側で調整するかのどちらか。 送る側で調整するのであれば、javascriptなどブラウザ依存になります。 携帯を含め、javascript非対応端末からのデータが受け取れません。 逆に、受け取る側で対応する場合は、bbbを押そうがcccを押そうが関係なく データをすべて送ってしまえばよいのです。 その上で受け取った側でsubmitボタンにつけられたnameとvalueから bbbが押されたので、AAAとBBBのデータを使ってあとはいらないので 無視しよう・・・という処理をいれればよいわけです

salisa
質問者

お礼

回答ありがとうございます。 JavaScriptで処理する場合、どのようにすればいいのでしょうか。

関連するQ&A

  • 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
  • 同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変

    同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変えたい。 例えば、 以下のように、同じフォーム内に2つのボタンを用意し、 片方のボタンをクリックすると、現在のページ(aaa.cgi)へ戻り、 もう片方のボタンをクリックすると、別のページ(bbb.cgi)へ飛ぶようにしたい。 なお、何れのボタンもサブミットしたい。 ↓(aaa.cgi)================================= : <form name="frm1" action="???" method="post"> <input name="t1" type="text"> <input name="t2" type="text"> : <input name="b1" type="button" onClick="submit();"> <input name="b2" type="button" onClick="submit();"> : </form> : ↑(aaa.cgi)================================= 良い方法はないでしょうか。 ご存知の方、ご教授ねがいます。 よろしくお願いします。  

    • ベストアンサー
    • Perl
  • フォーム送信後の更新ボタンでも$_POST変数が初期化されない

    フォームのサブミット後にプログラムが走るようになっているtest.phpがあるのですが、フォーム送信後に更新ボタンを押しても再度ポストされるようになってしまっています。 ブラウザの更新ボタンを押したときには、ポストせずにフォームをクリアしたいのですが、どうすればできますでしょうか? <form method="post" action="<?php print($_SERVER['PHP_SELF']); ?>"> <input type=text name=aaa> <input type="submit" name="submit" value="submit"> </form> <?php if($_POST['submit']) { 処理 } ?>

    • ベストアンサー
    • PHP
  • phpでのメールフォームの作成について

    HTMLで <form action="mail.php" method="post"> <input name="aaa" type="checkbox" id="aaa" value="AAA" checked> <input name="bbb" type="checkbox" id="bbb" value="BBB" checked> <input name="ccc" type="checkbox" id="ccc" value="CCC" checked> </form> として、次に進むボタンを押すとmail.phpに飛び mail.phpでは、チェックされたものだけを表示したいのですが、どうすればよいでしょうか? もし、AAAとBBBが選ばれたら あなたが選んだのは AAA、BBBです。 と表示したいです。そのあとにメールフォームを続けるつもりです。 ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • フォームの一部のfileを送信

    上手に出来る方法をアドバイス下さい。 <form method="post" name="uploadForm" id="uploadForm" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text1" id="text1"> <input type="file" name="upload_file" id="upload_file"> <input type="button" value="アップロード"> <input type="text" name="text2" id="text2"> <input type="submit" value="送信"> </form> のようなフォームで「アップロード」が押された場合、"upload_file"だけ送信したいのですが上手い方法があるでしょうか? また、「送信」が押された場合、"upload_file"以外を送信したいです。 「POST先で無視をする」以外でお願いします。

  • フォームのvalueを変更する方法

    下記はjavaScriptで書いたものですが、javaScriptが有効になっていないと機能しないので perlで同じことをやりたいのですが、フォームのvalueを変更する方法とinnerHTMLの様なボタンをクリックするとテキストを変更する方法が分かりません。 ヒントでも良いので教えていただけませんか? <HTML> <HEAD><SCRIPT language="JavaScript"> <!-- function nextA(){ var data = document.formA.data.value; data++; document.formA.data.value = data; } //--> function nextB(){ var data = document.formB.data.value; data++; document.formB.data.value = data; document.getElementById("print").innerHTML = data; } //--> </SCRIPT> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD> <BODY> <FORM name="formA"> <input name="data" value="1"> <INPUT type="button" value="足す" onclick="nextA()"> </FORM> <FORM name="formB"> <SPAN id="print">1</SPAN> <INPUT type="button" value="足す" onclick="nextB()"> <INPUT type="hidden" name="data" value="1" > </FORM> </BODY> </HTML>

    • ベストアンサー
    • CGI
  • 複数のフォームから送信

    複数のフォームから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> ------------------------------------

  • 送信フォームについて

    過去の記述を捜してみたのですが今一理解が出来ません でしたのでお尋ねします。 HTML文書中に感想欄を設けたく次の様にしました。 <form method="POST" action="mailto:****@***.ne.jp"> 名前: <input type=text name="NAME" size=20><br> 感想: <input type="text" name="MSG" size=20><br> <input type="submit" value=" 送信 "> <input type="reset" value=" 取消 "> </form> このテキスト枠内に文字を入れ送信ボタンを押すと自分 宛が記入された新規メール****@***.ne.jpが立ち上がって 来て内容が自分の所へ送信できません。 メーラーはBecky! Internet Mail version 2を使用して います。OSはWindowsXPです。 ・送信ボタンを押した内容が送信できないのはなぜ? ・メール用紙がでてくるのはなぜ? ・この様なフォームはパソコンでも携帯電話でも共通で  使用できますか? どなたか教えてください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • locationで再読込と同時に書き込みができない

    AAAフレーム BBBフレームのページを作成しております。 下記のようなフォームを使い、一言送信を行っております。 <form action="BBB.php" method="post" target="BBB" onsubmit="location.href='AAA.php';"> 一言<br> <input type="text" name="hitokoto" maxlength="100" size="30" value=""><br> <input type="submit" value="送信"> <input type="hidden" name="basyo" value="ホームページからの書き込み"> </form> フォームで送信されたものは、BBBフレームのBBB.phpで処理を行うのですが、 同時にAAAフレームにあるAAA.phpも再読込させたいと考えており、 javascriptは無知ですが、調べたところ、上記にあるような、 onsubmit="location.href='AAA.php' というのが合うかと思い、<form>に加えたのですが、 1回目一言フォームに書き込み送信すると、書き込まれず 2回目一言フォームに書き込み送信すると、書き込めます 3回目は書きこまれず 4回目は書き込めます 以降、書き込めない・書き込めるを繰り返します どういう状況かご存じの方いらっしゃいましたら、どうかお教え下さい。

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

    同じ場所に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

専門家に質問してみよう