• ベストアンサー

cgiへの送信とページリンクのできるプルダウンについて

初めて質問させて頂きます。 cgiへ送る選択項目と別のページへリンクする項目をひとつの プルダウンでまとめたいと思っています。プルダウンを使って 別のページリンクするタグは分かるのですが、cgiへvalue値を 送るタグが分かりません。 <select onchange="top.location.href=this.options[this.selectedIndex].value"> ※別のページへリンク<option value="a.html">Aのページへ</option> ※cgiのname="A"へ"value値"B"を送る項目<option value="ここがわかりません">Bで検索</option> </select> 質問が分かりにくく大変申し訳ありませんが、ご指導下さると 幸いです。よろしくお願い致します。

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

  • ベストアンサー
  • hkd9001
  • ベストアンサー率48% (99/204)
回答No.1

こんにちは。 ご質問にあった select タグ <select onchange="top.location.href=this.options[this.selectedIndex].value"> これに、name 属性(name"~~" っていうやつ)を入れてください。そうすれば cgi 側で値を参照することができます。

qqw55fs9k
質問者

お礼

早速ご回答頂き、誠にありがとうございました。以下のように <option value="b.cgi?mode=search&value=b">Bを検索</option> とすることで、無事cgiへの送信と別のページにリンクさせるこ とができました。hkd9001様にご回答頂いた内容も参考にさせて 頂きました。 分かりにくい質問にお答え頂き誠にありがとうございました!

その他の回答 (1)

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

≪送る側≫ <select onchange="top.location.href=this.options[this.selectedIndex].value"> <option value="a.html">Aのページへ</option> <option value="b.cgi?name=a&value=123">Bで検索</option> <option value="b.cgi?name=b&value=abc">Cで検索</option> </select> ≪受ける側(b.cgi)≫ <body onLoad="load();"> <SCRIPT language="JavaScript"> <!-- function load() { document.$in{'name'}.name.value = $in{'value'}; } //--> </script> <form name="a"> <input type="text" name="name"> </form> <form name="b"> <input type="text" name="name"> </form> とすると『Bで検索』を選択すると<form name="a">のテキストボックスに『123』と記述され 『Cで検索』を選択すると<form name="b">のテキストボックスに『abc』と記述することはできますが value値に日本語を選択するとスクリプトエラーが出てしまいます (すみません、知識不足でこのエラー回避の仕方は分かりません(><) つまり『b.cgi?name=a&value=123』とすることで <form action="b.cgi" method="post"> <input type="hidden" name="name" value="a"> <input type="hidden" name="value" value="123"> </form> と同じ効果を得ることができます アドレスバーに記述されるから『hidden』ではないか・・・(--;) 受け取る側は『 $in{'name'} 』や『 $in{'value'} 』で値を受け取ることができます あとはこれを応用させて自身の好みに変えていってくださいm(--)m

qqw55fs9k
質問者

お礼

早速ご回答頂き、誠にありがとうございました。以下のように <option value="b.cgi?mode=search&value=b">Bを検索</option> とすることで、無事cgiへの送信と別のページにリンクさせるこ とができました。leap_day様にご回答頂いた内容も参考にさせて 頂き、無事動作するようになりました。 分かりにくい質問にお答え頂き誠にありがとうございました!

関連するQ&A

専門家に質問してみよう