• ベストアンサー

プルダウンで選択したページにフォームデータを送る

a.htmlからプルダウンで選択した1~6までのhtmlに、フォームデータを送る ということは可能でしょうか? いろいろ組み合わせたりしていますがうまくいきません。 どなたかご教授お願い致します。 <SCRIPT LANGUAGE="JavaScript"> <!-- function jumpMenu(){ location=(document.link.list.options [document.link.list.selectedIndex].value); } //--></SCRIPT> <SCRIPT LANGUAGE="JavaScript"> <!-- // sendURL = " jumpMenu()"; function sendData() { sData = escape(doument.myFORM.theData.value); Location.href = sendURL + "?"+sData; } //--> </SCRIPT> <form name="myFORM"> <SELECT NAME="list"> <OPTION VALUE="1.html" SELECTED>1</OPTION> <OPTION VALUE="2.html">2</OPTION> <OPTION VALUE="3.html">3</OPTION> <OPTION VALUE="4.html">4</OPTION> <OPTION VALUE="5.html">5</OPTION> <OPTION VALUE="6.html">6</OPTION> </SELECT> <INPUT TYPE="TEXT" SIZE="61" NAME="a"> <INPUT TYPE="submit" VALUE="GO" onClick="sendData()"> <INPUT TYPE="reset" VALUE="クリア">

  • izaq
  • お礼率43% (19/44)

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

  • ベストアンサー
  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.4

サンプルを作りました。参考にして考えてやってみてください。 '********** ここから ********** <SCRIPT LANGUAGE="JavaScript"> <!-- //テキストボックスから値の取得 // obj : テキストボックスの名前 function getTextbox(obj) { return (document.myFORM.elements(obj).value); } //チェックボックスから値の取得 // obj : チェックボックスの名前 function getCheckbox(obj) { if (document.myFORM.elements(obj).checked == true){ return (document.myFORM.elements(obj).value); } else { return (""); } } //リストボックスから値の取得 // obj : リストボックスの名前 function getSelect(obj) { return (document.myFORM.elements(obj).options[document.myFORM.elements(obj).selectedIndex].value); } //各値の取得後、テキストエリアに表示 function getDispData() { var sDispData; sDispData = "theData:" + getTextbox("theData") + "\n"; sDispData = sDispData + "theData2:" + getTextbox("theData2") + "\n"; sDispData = sDispData + "1:" + getCheckbox("1") + "\n"; sDispData = sDispData + "2:" + getCheckbox("2") + "\n"; sDispData = sDispData + "address:" + getSelect("address"); document.myFORM.elements("DispData").value = sDispData; } //--> </SCRIPT> <form name="myFORM"> theData: <INPUT TYPE="TEXT" SIZE="61" NAME="theData"><BR> theData2: <INPUT TYPE="TEXT" SIZE="61" NAME="theData2"><BR> 1: <INPUT TYPE="checkbox" NAME="1" VALUE="1"><BR> 2: <INPUT TYPE="checkbox" NAME="2" VALUE="2"><BR> 性別: <SELECT NAME="address"> <OPTION SELECTED VALUE="">▼性別 <OPTION VALUE="男">男 <OPTION VALUE="女">女 </SELECT> <BR><BR> <INPUT TYPE="button" NAME="getValue" VALUE="データ表示" onClick="getDispData();"> <BR><BR> <TEXTAREA NAME="DispData" COLS="50" ROWS="5"></TEXTAREA> </form> '********** ここまで **********

izaq
質問者

お礼

本当に有り難うございました。 合わせて、自分でもcgiに送るという方法も考えてみました。 データを送る方法も自分なりに考えて動作するようになりました。 とても勉強になりました。

その他の回答 (3)

noname#3345
noname#3345
回答No.3

そうですね。 ご希望のことであれば、BlueRayさんの書かれたソースで実現可能だと思います。 あえてあげれば、 document.myFORM.method = "post"; は、直接 <form name="myFORM" METHOD="POST"> と書いてしまった方がいいかもしれません。 ただ、ちょっと気になったんですが、 > 1.htmlから6.htmlのいずれかのページに送り、ページ内に送られたデータをためて、 > そこからまた追加のフォームを入力してcgiにデータを送るということがしたいのです。 という事は、SELECTで渡る先はCGIではないという事なんですね? だとしたら、METHODはPOSTではなく、GETでないと、引渡しはできません。 (HTMLファイルではPOSTの情報を受け取れないので) ただし、GETは環境変数ですので、引渡しのできる文字列長の制限があります。 (長さのMAXはサーバーの設定によります) SELECTで渡る先がCGIであれば、POSTの変数を受け取って、hiddenフォームにいれておけば、追加情報とともにその先のCGIに引き渡すことは可能です。 そこらへんを注意なさってください。

izaq
質問者

お礼

ご忠告ありがとうございます。 色々勉強になりました。

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.2

質問にかかれているソースを予測される型に変更しています。 以下のようにしては如何でしょう。 '********** ここから ********** <SCRIPT LANGUAGE="JavaScript"> <!-- function jumpMenu(){ return (document.myFORM.list.options[document.myFORM.list.selectedIndex].value); } function sendData() { var sData = escape(document.myFORM.theData.value); document.myFORM.method = "post"; document.myFORM.action = jumpMenu(); document.myFORM.submit(); } //--> </SCRIPT> <form name="myFORM"> <SELECT NAME="list"> <OPTION VALUE="1.html" SELECTED>1</OPTION> <OPTION VALUE="2.html">2</OPTION> <OPTION VALUE="3.html">3</OPTION> <OPTION VALUE="4.html">4</OPTION> <OPTION VALUE="5.html">5</OPTION> <OPTION VALUE="6.html">6</OPTION> </SELECT> <INPUT TYPE="TEXT" SIZE="61" NAME="theData"> <INPUT TYPE="submit" VALUE="GO" onClick="sendData()"> <INPUT TYPE="reset" VALUE="クリア"> </form> '********** ここまで **********

izaq
質問者

お礼

BlueRayさん どうもありがとうございます! さっそく試してみます。

izaq
質問者

補足

さきほどはありがとうございました。 追加でお尋ねしたいのですが、 例えばa.htmlのフォームに <INPUT TYPE="TEXT" SIZE="61" NAME="theData"> <INPUT TYPE="TEXT" SIZE="61" NAME="theData2"> <INPUT TYPE="checkbox" NAME="1" VALUE="1"> <INPUT TYPE="checkbox" NAME="2" VALUE="2"> <SELECT NAME="address"> <OPTION SELECTED VALUE="">▼性別 <OPTION VALUE="男">男 <OPTION VALUE="女">女 </SELECT>の項目がある場合 javascriptの部分はどうかわるのでしょうか? また受ける方の1.htmlのjavascriptの部分も教えていただけますでしょうか? 素人考えで、受ける方に同じ<INPUT TYPE="TEXT" SIZE="61" NAME="theData"> が入っていれば データが移るのかとおもいましたが、、、うまくいきませんでした。 よろしくお願い致します。

noname#3345
noname#3345
回答No.1

う~ん、doument.myFORM.theData.value ってのはなんなんでしょう? 見たところ、theDataっていう名前のフォームエレメントはなさそうですが・・・。(^^;; もし、値とhtml名が同じなのであれば、 <SELECT NAME="list"> <OPTION VALUE="1" SELECTED>1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> <OPTION VALUE="4">4</OPTION> <OPTION VALUE="5">5</OPTION> <OPTION VALUE="6">6</OPTION> </SELECT> としておいて、 <SCRIPT LANGUAGE="JavaScript"> <!-- // function sendData() { document.myForm.action = document.myForm.list[document.myForm.list.selectedindex].value + ".html"; document.myForm.submit(); } //--> </SCRIPT> とすれば、2が選択されれば、2.htmlにlist=2という情報が渡ります。 値とhtmlの名前が異なるのであれば、 1.SELECTのVALUEにカンマ区切りなどで両方の値を持たせ、分割して飛び先と引数にする。 2.Javascriptソースの中に飛び先情報を持たせ、選択された値によって、どこに飛ぶか制御する などの方法が考えられます。 ソースと質問からは上記のような推察しかできませんでした。 1~6までのhtml全てに値を渡したい訳では無いですよね? また、theDataが何をさすのか? aという名前のtextフィールドはなんのか? 等、ちょっとソース上からは何をされたいのかわかりません。 どういう情報をどう渡したいのか、そこらへん補足していただければ、もうちょっと具体的なアドバイスが集まるかも。

izaq
質問者

補足

Prynneさん素早い回答有り難うございます。 確かに説明不足すぎますね申し訳ございません。 まずやりたいことは、a.htmlの中に、 たとえば氏名や住所を入力したりチェックボックスで、 項目を選んだ複数のフォームのデータを、 1.htmlから6.htmlのいずれかのページに送り、ページ内に送られたデータをためて、 そこからまた追加のフォームを入力してcgiにデータを送るということがしたいのです。 うーjavascriptぐちゃぐちゃのソースですみません。 ソースは、データを別ページにおくるものと、プルダウンでリンクをとばすものを 合わせてみようとしたのですが、お見苦しいものですみません。。。

関連するQ&A

  • プルダウンメニューで選んだリンクを別窓で表示させたい

    こんにちは。 プルダウンメニューで選んでもらうと 選んでもらった日にちのところに飛ぶように作っています。 ★GO★を押してもらった日にちの日記を 別窓で表示させるにはどこに _blank を入れたらいいのでしょうか? よろしくお願いします○┓ペコリ <script language="JavaScript"><!-- function myGo(){ mySelect = document.myForm.myMenu.selectedIndex; location.href = document.myForm.myMenu.options[mySelect].value; } // --></script> <form name="myForm"> <select name="myMenu"> <option value="http://blog.livedoor.jp/***"> ■ブログTOP■ <option value="http://blog.livedoor.jp/01**" > *2/2の日記 <option value="http://blog.livedoor.jp/02**" > *2/3の日記 </select> <input type="button" value="★GO★" onClick="myGo()"> </form>

  • プルダウン Or コンボボックスを選択したら、テキストボックスを入力不可にさせる方法 

    フォーム制御として、JavaScriptを使用して、プルダウンよりある項目が選択されたと同時に、あるテキストボックスの入力を不可、またはmaxlengthを0にしたいのですが、思うように出来ません。 maxlengthをvalue等に変更させたら値は変更されたので、 関数としての動きは問題なさそうです。 どなたか、ご教授お願いいたします。 ※現在下記のソースは、list番号を指定していません。 <script language="JavaScript"> <!-- function MM_jumpMenu(){ parent.document.form1.text1.maxlength=0; } //--> </script> <form name="form1" method="post" action=""> <select name="menu1" onChange="MM_jumpMenu()"> <option selected>unnamed1</option> <option>unnamed2</option> </select> <input type="text" name="text1" maxlength="10"> </form>

  • 複数のプルダウンメニューの作り方。

    ・Aリスト、Bリスト…とプルダウンメニューを複数含んだフォームを一つのhtmlに作りたいのですが、上手くいきません。 一つのフォームに一つのプルダウンメニューは上手くいくのですが、Javascriptを二つ並べると動かなくなります。 とりあえず関数名を重複しない様にしたらいいという事だけはネットで調べてわかりました。 今は、下記の状態になっています。 <script language="JavaScript"> <!-- function MENU(){ mySelect = document.myForm.myMenu.selectedIndex; location.href = document.myForm.myMenu.options[mySelect].value; } // --> </script> <form name="myForm"> <select name="myMenu" onChange="MENU()"> <option value="">A</option> <option value="a001.html">A001</option> <option value="a002.html">A002</option> <option value="a003.html">A003</option> </select> <select name="myMenu2" onChange="MENU()"> <option value="">B</option> <option value="b001.html">B001</option> <option value="b002.html">B002</option> <option value="b003.html">B003</option> </select> </form> ご指南の程宜しくお願いします。

  • 選択フォームへの追記について

    現在、下記のように一つのフォームの場合は、 ボタンを押すと追記されますが、 複数のフォームがある場合に、 選択されているフォームへ、 追記するには、どうすればよろしいでしょうか、 よろしくお願いいたします。 <html> <head> <script language="JavaScript"><!-- CR = String.fromCharCode(13); function setData(param) { txt = document.myFORM.myTEXT.value + param + CR; document.myFORM.myTEXT.value = txt; } // --></script> </head> <body> <form name="myFORM"> <input type="button" value="月曜日" onClick="setData('月')<br> <input type="button" value="火曜日" onClick="setData('火')"><br> <textarea rows="9" cols="20" name="myTEXT"></textarea><br> </form> </body> </html>

  • メールフォームのソースについて

    メールフォームがうまく作れません。下のソースでおかしなところがあったら 教えていただけませんか?よろしくお願いします。 html> <head> <title>sample</title> <script Language="JavaScript"><!-- function set(sObj) { str = sObj.options[sObj.selectedIndex].value; document.myFORM.action = "mailto:" + str; } // --></script> </head> <body> <form name="myFORM" method="post" action="mailto:abc@***.ne.jp" enctype="text/plain"> <br> <input type="text" value="test" NAME="data"><br> <input type="submit" VALUE="送信"><br> </form> </body> </html>

  • フォームの値をjavascriptでsubmitする時に

    <form name="myForm" action="" id="myID" onsubmit="return false;"> <input type="hidden" name="v1" value="" /> </form> というようなフォームがあり、 <script language="javascript"> function submitTest(v) { document.myForm.v1.value = v; document.myForm.submit(); } </script> のような形でsubmitする際に、<form>の属性で指定したid="myID"って javascript関数内でどのようにすれば渡せるのでしょうか?? 何か質問がおかしかったらご指摘願います。

  • プルダウンから飛んだページにアクセスする方法

    アクセスする事が出来なくて困っています。初歩的なもので申し訳ないのですが、よろしくお願いします。 <HTML> <HEAD> <TITLE> </TITLE> <script language="javascript"> <!-- function navi(obj) { url = obj.options[obj.selectedIndex].value; if(url != "") { location.href = url; } } //--> </script> </HEAD> <BODY> <form method=post> <select name="navi">  <option value a href="URL">リンク <option value a href="URL">リンク1 <option value a href="URL">リンク2 <option value a href="URL">リンク3 </select> <input type=button value="ジャンプ" onClick="location.href =(this.form.navi.options[this.form.navi.selectedIndex].value)"> </form> </BODY> </HTML>

  • 選択したたラジオボタンの値をSUBMITボタンに

    選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。 イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.Radio.value; } // --> </script> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

  • 複数のプルダウンメニューの作り方。

    質問内容に不備があったため再度質問させて頂きます。 前回答えて下さった方には大変ご迷惑をおかけします。 非常に多くのものを奇麗に見せたいのでプルダウンメニューがいいと思い、作りました。 ・Aリスト、Bリスト、Cリスト…とプルダウンメニュー(メニューを選ぶとアンカー先に飛ぶようにしたい)を複数含んだフォームを一つのhtmlに作ったのですが、動作しません。 一つのフォームに一つのプルダウンメニューは上手くいくのですが、Javascriptを二つ並べると動かなくなります。 とりあえず関数名を重複しない様にしたらいいという事だけはネットで調べてわかりました。 今は、下記の状態になっています。 list.html <script language="JavaScript"> <!-- function MENU(){ mySelect = document.myForm.myMenu.selectedIndex; location.href = document.myForm.myMenu.options[mySelect].value; } // --> </script> <form name="myForm"> <select name="myMenu" onChange="MENU()"> <option value="">A</option> <option value="list.html#a001">A001</option> <option value="list.html#a002">A002</option> <option value="list.html#a003">A003</option> </select> <select name="myMenu2" onChange="MENU()"> <option value="">B</option> <option value="list.html#b001">A001</option> <option value="list.html#b002">A002</option> <option value="list.html#b003">A003</option> </select> </form> <a id="a001" name="a001"></a>A001<br> <a id="a001" name="a002"></a>A002<br> <a id="a001" name="a003"></a>A003<br> <a id="a001" name="b001"></a>B001<br> <a id="a001" name="b002"></a>B002<br> <a id="a001" name="b003"></a>B003<br> あと、このように同じhtml内でのリンクになる場合は、optionのvalueのlist.htmlを省いてもいいのでしょうか? 当方、Javascriptに関してはコピペでしか使えない程度の知識の人間です。 ご指南の程宜しくお願いします。

  • プルダウンから飛んだページを別ウインドウで開く方法

    初歩的なJavaScriptで申し訳ないのですが、ご教授願いします。 下記のプルダウンのJavaScriptで、例えばヤフーと言う部分を選択し、飛ぶをクリックするとヤフーに飛びますが、その際ヤフーにとんだページを別ウインドウで表示させたいのですが、お分かりの方いらっしゃいましたらこの素人に教えてください・・ <HTML> <HEAD> <script language="javascript"> <!-- function navi(obj) { url = obj.options[obj.selectedIndex].value; if(url != "") { location.href = url; } } //--> </script> </HEAD> <BODY> <form method=post> <select name="navi" size="10" "abc" onChange="document.b.submit()"> <option value="http://www.yahoo.co.jp/">ヤフー </select> <input type=button value="飛ぶ" onClick="location.href = this.form.navi.options[this.form.navi.selectedIndex].value"> </form> </BODY> </HTML>