• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プルダウンでaction等を変更するには)

プルダウンでaction等を変更するには

このQ&Aのポイント
  • プルダウンでaction等を変更する方法について教えてください。
  • 検索フォームのプルダウンで選択させるにはどうすれば良いですか?
  • フォームのプルダウンに「A内を」「B内を」と入れたいです。

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

  • ベストアンサー
  • trisagion
  • ベストアンサー率68% (15/22)
回答No.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)
回答No.1

検索するサーチエンジンを選択し、それに合わせた値を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>

LUSH3
質問者

補足

お返事ありがとうございます。早速試してみたのですがうまく行きませんでした。 下記のソースをいただいたものに代入してみたのですが、どうにもちんぷんかんぷんで…申し訳ありませんが、添削していただけないでしょうか。お手数かけます。 ブログの中にある検索フォームを複数ブログで共有したいというのが元々の考えなのですが、下記の形式で書かないとうまくいかないのでしょうか。 あ、あと「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>

関連するQ&A