formで項目を連結したい

このQ&Aのポイント
  • 簡単なメルマガ申込のformがあります。名前とメールアドレスしか受け付けない簡単なものです。
  • 複数サイトからの登録を受け付ける際、各サイトから来たユーザーを識別する方法がありません。
  • hiddenフィールドを使用し、サイト名とユーザー名を連結してフォームに渡すことが考えられますが、具体的な実装方法が分かりません。onsubmitイベントを使用した方法ではうまくいかなかったそうです。良い方法はありますか?
回答を見る
  • ベストアンサー

formで項目を連結したい

簡単なメルマガ申込のformがあります。 名前"name"とメールアドレス"email"しか受け付けない簡単なものです。 複数サイトを持っていて各サイトから登録を受け付けるのですが、 誰がどのサイトから来たのかがつかめません。 cgi(PHP?)の改造も出来ない条件です。 そこで色々調べて、考えたのが hiddenで site="A"や site="B" として、 name2 に名前を入れてもらいます。 そして site + name2 を nameというようにformに渡したいのです。 concatなどの指令がある事までは分かったのですが head内の書き方とformで指定する書き方が分からないのです。 onsubmitなどで出来そうなのですが試した結果、名前しか登録されません。 良い方法はないでしょうか?

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

  • ベストアンサー
  • is_may
  • ベストアンサー率65% (58/89)
回答No.1

こういうことでしょうか? <script language="javascript"><!-- function xSubmit(){ if(!document.f.name2.value || !document.f.mail.value){ return false; } else { document.f.name.value=document.f.site.value + ":" + document.f.name2.value; } } --> </script> <form onsubmit="return xSubmit()" name="f"> <input type="hidden" name="name"><!--nameに(name2 + サイト識別)を代入--> <input type="hidden" name="site" value="A"><!--サイト識別--> <table border="1"> <tr> <td>なまえ</td> <td><input size="26" type="text" name="name2"></td> </tr> <tr> <td>メール</td> <td><input size="26" type="text" name="mail"></td> </tr> <tr> <td colspan="2" align="right"><input type="submit" value="登録"></td> </tr> </table> </form>

pokiseijin
質問者

お礼

ズバリ、どんぴしゃでした。 テストの結果、欲しいデータが取れました。 こういう機能はアレンジでもっと便利になりますね。 勉強させていただきました。 本当にありがとうございました。

関連する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
  • FormのonsubmitでJavaスクリプトを複数使えますか

    こんにちは。 いまフォームページで送信前に記入漏れがないかチェックするのに、スクリプトを使っています。 <form action="../cgi-bin/form.cgi" method="post" name="bkform" onSubmit="return Check()"> このほかに、スパム防止のためJcapというスクリプト(画像で出てくる文字を入力させる)を使うことにしました。 画面上に表示はできるようになったのですが、こちらのスクリプトも <form method="post" action="/cgi-bin/form.cgi" onSubmit="return jcap();" name="xfrm"> というようにonsubmitが必要です。 この二つのスクリプトを1つのページで動かすことは可能なのでしょうか? ご教授お願いいたします・・・。

  • ファイヤーフォックスでフォームが文字化けがします。

    お世話になります。 自分で作ったサイトですが、 入力フォームの氏名を書き込んで、それをクッキーに保存して、それを呼び出すと、入力した名前が文字化けしてしまいます。 自分で作ったといっても、無料配布のCGIです。 これはファイヤーフォックスの問題でしょうか? 私の環境は、Windows8.1 です。 ちなみに、その部分の内容は、次の通りです。 print "<FORM METHOD=\"POST\" ACTION=\"./bbs.cgi\" ENCTYPE=\"multipart/form-data\">\n"; print "<input type=\"hidden\" name=\"mode\" value=\"modify\">\n"; print "<input type=hidden name=\"no\" value=\"$main_no\">\n"; }else{ print "<FORM METHOD=\"POST\" NAME=\"F1mode\" ACTION=\"./bbs.cgi\" ENCTYPE=\"multipart/form-data\" onSubmit=\"return chuuikakunin()\">\n"; print "<input type=\"hidden\" name=\"mode\" value=\"add\">\n"; } 正直なところ詳しいことはよく分かりませんが、 onSubmit=\"return chuuikakunin()\" ↑これは、JavaScriptを使って名前の入力が無いとアラートで知らせるためのものだと思われます。 よろしくお願い致します。

  • FORM1つでリンク

    いつもお世話になっております。 既にある質問も調べてみたのですが <form name="top" method="post" action="xxx.cgi"> <input type = "hidden" name="data" value="open"> <a href="#" onClick="submit();">オープン</a> <input type = "hidden" name="data" value="close"> <a href="#" onClick="submit();">クローズ</a> </form> FORMを1つで、hrefのリンクみたいにして違う値を 送信したいのですが、上記だと 二つ目のリンクが上手く出来ません。 どなたかお知恵をお貸し下さい

  • ブログ内で<form>を表示したいのですが、方法がわかりません

    ブログの中で、買い物かごを埋め込みたいのですが、記事の投稿では そのままソースが表示されてしまいます。 WEB上で、作動するように出来るのでしょうか 方法があれば教えていただければ幸いです ソース 例 <form action="http://www.shopgear.ne.jp/cgi-bin/order_item_step1.cgi"method="post"> <input type="hidden" name="_memo1" value> <input type="hidden" name="_memo2" value></form>

  • form につけた id 値の取得方法

    form 内に id という名前の input 要素があると、form につけた id 値が取得できません。firefox で確認しましたが、例の f2.id が input 要素になります。このような場合 form の id 値はどのようにすれば取得できるでしょうか。 <!doctype html> <html> <head><title>id test</title></head> <body> <form id="f1" name="f1"> <input type="hidden" name="idx"> </form> <form id="f2" name="f2"> <input type="hidden" name="id"> </form> <script type="text/javascript"> var f1 = document.getElementById('f1'); var f2 = document.getElementById('f2'); alert("f1.name: " + f1.name + ", f1.id: " + f1.id + "\nf2.name: " + f2.name + ", f2.id: " + f2.id); </script> </body> </html>

  • form の onSubmit がコールされません;

    JavaScript初心者のyuki_xです。よろしくお願いします☆ 以下のコードで、 <チェック>を押下したときの動作が上手くいきません。 どうしてなのか、さっぱりわからないので教えてください!! 私の予定では、 1)<チェック>押下 2)nextPage() が呼ばれる 3)nextPage() で onSubmit イベントが発生 4)onSubmit に記述されている check() が呼ばれる となるはずなのですが、onSubmit イベントが発生していないようなのです。 alert() をいれて確認したところ、nextPage() が呼ばれたあと、 FORM の action に書かれている next.html へ移ってしまいます。 check() は呼ばれません。 どこが間違っているでしょうか? <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> <!-- function nextPage() { document.myform.type.value = n; document.myform.submit(); } function check() { //入力チェック } //--> </SCRIPT> <FORM action="next.html" method="post" name="myform" onSubmit="return check()"> <INPUT type="hidden" name="type" value=""> <INPUT type="button" value="チェック" onClick="nextPage();"> </FORM> (IE を使っています。)

  • 名無しformの操作

    以下のような、元々名前のないformが複数ある場合にボタンイベントで発生した共通のtest()関数内で処理を行う場合、どのフォームか識別できる方法はあるのでしょうか? テスト1、をクリックした場合、テスト1のフォームの操作を行いたいです。 <script ....... function test(???) { document.どのフォームかわからない.action="/index.cgi"; document.どのフォームかわからない.a.value="1"; document.どのフォームかわからない.submit(); } </script> <form> <input type="hidden" name="a" value=""> <input type="button" value="テスト1" onclick="javascript:test(???)"> </form> <form> <input type="hidden" name="a" value=""> <input type="button" value="テスト2" onclick="javascript:test(???)"> </form> <form> <input type="hidden" name="a" value=""> <input type="button" value="テスト3" onclick="javascript:test(???)"> </form>

  • 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のsubmit()

    以下のようなhtmlを作成しました。 (1)external_link.html(メイン側) <html> <head> <script> <!-- function setForm(elem){ var childwin; formid = document.forma; document.form1.login.value = formid.login.value; window.showModalDialog("dialog.html", this, "status:yes; resizable:yes;" ); } // --> </script> </head> <body> <form name="forma"> <input type="hidden" name="login" value="login1"> <input type="button" name="login1" value="ダイアログいけ" onClick="setForm(this);"> </form> <form name="form1"> <input type="hidden" name="login" value=""> </form> </body> </html> (2)dialog.html <html> <head> <script> <!-- function setForm(){ var parentwin = window.dialogArguments; var parentForm = parentwin.document.form1; document.formx.login.value = parentForm.login.value; document.formx.submit(); } // --> </script> </head> <body onLoad="setForm();"> <form action="http://host-name/servlet" method="POST" enctype="application/x-www-form-urlencoded" name="formx"> <input type="hidden" name="login" value=""> </form> </body> </html> 期待としては、このモーダルダイアログ上にサーブレットの実行結果が表示されることなのですが、何も実行されません。 でも、setForm()ファンクション上にalert("A");等をつけてやると ダイアログではなく『別画面上に』サーブレット実行結果が表示されます。 モーダルダイアログ上にサーブレットの実行結果を表示する方法はありませんでしょうか。 よろしくご教示お願いします。

専門家に質問してみよう