こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

セレクトボックスのリンクと値を渡す方法

セレクトボックスのリンクと値を渡す方法
pealで以下の用に記述しているものを・・・

<script language=JavaScript>
<!--
function page(v,s,f) {
var val = v;
var sid = s;
var flg = f;
document.go_page.method=\"post\";
document.go_page.action=val;
document.go_page.sid.value=sid;
document.go_page.flg.value=flg;
document.go_page.submit();
}
//-->
</script>

<a href=\"javascript:page('***.cgi','','','','$m')\">[$m]</a>

以下のような形にselectされた時点で値($m)を渡し、かつ同じページ(***.cgi)内で値に伴うリンクを飛ばし表示させるにはどのようにすればよいでしょうか?

<form action=***.cgi>
<select name=***>
<option value="$m">$m</option>
</form>

投稿日時 - 2009-03-09 14:03:50

QNo.4781702

困ってます

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

No2です。
あれっ?
他にも値も渡したいのかな?(早とちり?)

それなら、
<input type="hidden" ~~
を用意しておいて、ご質問の例のような感じでそこに値をセットしてからsubmit() すればよいです。

その場合は、
<select name="***" onchange="this.form.submit();">
         ↓
<select name="***" onchange="page(a,b,c);">
などにしておいて、paeg()内でa,b,cをセットしてから、フォームをsubmit()

投稿日時 - 2009-03-09 19:23:43

お礼

失礼しました。perlのことですTT

オプションは一個じゃなくて、ループかなんかで複数出力されていると仮定して、そのどれかを選んだら、そのまま***.cgiに渡したいってことでよいのでしょうか?
>> そうです。ループでいくつか存在して選択した際に自動的にその値をもってリンクさせたいです。いただいた内容で確認してみます!
ありがとうございます。

他にも値も渡したいのかな?
>>そのとおりです。不足内容が多くてすみません。

アドバイスいただいた形は以下であってますか?

<script language=JavaScript>
<!--
function page(a,b,c) {
var date = a;
var sid = b;
var flg = c;
document.go_page.method=\"post\";
document.go_page.date.value=date;
document.go_page.sid.value=sid;
document.go_page.flg.value=flg;
document.go_page.submit();
}
//-->
</script>

<form action=***.cgi>
<select name=*** onchange="page(a,b,c);">
------------------------------
<option name="a" value="$***">$***</option> →ループさせます。
------------------------------
<input type="hidden" name="b" value="$***">
<input type="hidden" name="c" value="$***">
</form>

投稿日時 - 2009-03-10 01:53:00

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

No2、No3です。

No3の補足の内容だと、sucript部分で値を入れている先と、formが対応していないみたいですね。(どこへ値をいれるつもりなのでしょうか?)

そもそも「go_page」がご提示のHTMLのformを意味しているのなら、その識別子がないと思ったとおりには動作しません。
例えば、
 <form name="go_page" action="~
みたいに。

投稿日時 - 2009-03-10 10:44:55

お礼

そうですね。提示を入れてませんでした。
その形でやってみたいと思います。

ありがとうございます!

投稿日時 - 2009-03-10 14:55:54

ANo.2

「peal」って「perl」のことかな?
print命令がないけど、「<<」によるデータ表記の中を取り出したものなのでしょうか?

><form action=***.cgi>
><select name=***>
><option value="$m">$m</option>
></form>
オプションは一個じゃなくて、ループかなんかで複数出力されていると仮定して、そのどれかを選んだら、そのまま***.cgiに渡したいってことでよいのでしょうか?

セレクトタグで
<select name="***" onchange="this.form.submit();">
としておけば、methodで指定した方法でデータが渡せます。

質問の意味が違ってたら失礼。

投稿日時 - 2009-03-09 19:14:10

ANo.1

http://www.google.co.jp/search?hl=ja&q=select+%E3%83%AA%E3%83%B3%E3%82%AF&lr=lang_ja
この辺りを参考にするといいわ。

投稿日時 - 2009-03-09 14:09:16