- ベストアンサー
プルダウンでaction等を変更するには
- プルダウンでaction等を変更する方法について教えてください。
- 検索フォームのプルダウンで選択させるにはどうすれば良いですか?
- フォームのプルダウンに「A内を」「B内を」と入れたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
onSubmitに指定してる値が間違っているのだと思います。 その部分の開設を省いてました。すみません。 onSubmit="changeSearch('hoge1','blog_id','keyword')" としていますが、1番目の値はFORMタグのname値、2番目の値はプルダウンメニュー(SELECTタグ)に付けたname値、3番目は<INPUT type="hidden">としているタグに付けたname値です。 実際にやってみたソースであれば、blog_idをhoge2にし、keywordをblog_idとしてみて下さい。 onSubmit="changeSearch('hoge1','hoge2','blog_id')" こんな感じですね。 実際にはhoge1もhoge2も任意の名前を付ける事ができます。 また、日本語部分(//から始まる行)は解説なので必要ありません。それと、もしコピー&ペーストしたのであれば 、インデント部分が全角スペースなので削除するなり半角スペースにするなりして下さい。 そのままではエラーとなる可能性があります。
その他の回答 (1)
- trisagion
- ベストアンサー率68% (15/22)
検索するサーチエンジンを選択し、それに合わせた値をhiddenに設定したいと言うことでしょうか? 「A内を」「B内を」の意味がよく解りませんが、以下の感じではどうでしょう? <HTML> <HEAD> <TITLE>Test</TITLE> <HEAD> <SCRIPT language="javascript" type="text/javascript"> <!-- function changeSearch(form,select,hidden){ //プルダウンで選択した項目の番号(0から始まる)を取得 var number = document.forms[form].elements[select].selectedIndex; //選択したものに適した値をhiddenに設定 var data = ""; switch(number){ case 0: data = "111"; break; case 1: data = "222"; break; } document.forms[form].elements[hidden].value = data; //プルダウンで選択した項目の値(optionのvalue値)をFORMのactionにセット document.forms[form].action = document.forms[form].elements[select].value; //送信 document.forms[form].submit; } //-> </SCRIPT> </HEAD> <BODY> <FORM action="" method="POST" name="hoge1" onSubmit="changeSearch('hoge1','hoge2','hoge3')"> <SELECT name="hoge2"> <OPTION value="http://www.yahoo.co.jp/">A内をyahooでサーチ</OPTION> <OPTION value="http://www.goo.ne.jp/">B内をgooでサーチ</OPTION> </SELECT><BR> <INPUT type="hidden" name="hoge3" value=""><INPUT type="text" name="hoge4" value=""><BR> <INPUT type="submit" name="submit" value="Search"> </FORM> </BODY> </HTML>
補足
お返事ありがとうございます。早速試してみたのですがうまく行きませんでした。 下記のソースをいただいたものに代入してみたのですが、どうにもちんぷんかんぷんで…申し訳ありませんが、添削していただけないでしょうか。お手数かけます。 ブログの中にある検索フォームを複数ブログで共有したいというのが元々の考えなのですが、下記の形式で書かないとうまくいかないのでしょうか。 あ、あと「A内を」というのは「Aブログ内を」(検索)という意味です。不明瞭で申し訳ありませんでした。 ---------------------------------------------------- 元ソース <form action="http://test.seesaa.net/pages/user/search/"> <div class="sidetitle">記事検索</div> <div class="side"> 検索語句<br /> <input value="" name="keyword" type="text" size="20" /> <input value="11111" name="blog_id" type="hidden" /> <input value="検索" type="submit" class="input-submit" /> </div> </form> ---------------------------------------------------- いだたいたソースに代入したもの <!-- function changeSearch(form,select,hidden){ //プルダウンで選択した項目の番号(0から始まる)を取得 var number = document.forms[form].elements[select].selectedIndex; //選択したものに適した値をhiddenに設定 var data = ""; switch(number){ case 0: data = "11111"; break; case 1: data = "22222"; break; } document.forms[form].elements[hidden].value = data; //プルダウンで選択した項目の値(optionのvalue値)をFORMのactionにセット document.forms[form].action = document.forms[form].elements[select].value; //送信 document.forms[form].submit; } //-> </SCRIPT> </HEAD> <BODY> <FORM action="" method="POST" name="hoge1" onSubmit="changeSearch('hoge1','blog_id','keyword')"> <SELECT name="hoge2"> <OPTION value="http://test.seesaa.net/pages/user/search/">テスト</OPTION> <OPTION value="http://test2.seesaa.net/pages/user/search/">テスト2</OPTION> </SELECT><BR> <INPUT type="hidden" name="blog_id" value=""> <INPUT type="text" name="keyword" value=""><BR> <INPUT type="submit" name="submit" value="検索"> </FORM>