<formのselectでリンクさせるには?

[上に] [前に] [次に]
しまぶ [E-Mail] 1999/09/23(木) 19:36:58
formのselectで、題名を選択したときにその題名のページを呼び出す
方法を教えてください。
検索して同じような質問を見ましたが、別でボタンを押さないと
リンクしないようでした。
選択した時点でページを呼び出すようにしたいのです。
超初心者です。
ぜひとも、お教えてくださいませ。m_ _m

お勉強 1999/09/23(木) 23:23:02
onChangeを使えば出来ますヨ
実際に実現しているページのソースを見て勉強しましょう!
さらにJavaScriptを使えない環境の人も考えてあげると親切です。
あんまり考慮してるページを見かけないけど・・・

1999/09/23(木) 23:30:01
<SCRIPT LANGUAGE="JavaScript">
<!--
function navi() {
location=foos.slcturl.options[foos.slcturl.selectedIndex].value;
}
//-->
</SCRIPT>

<FORM NAME="foos">
<SELECT onChange="navi()" NAME="slcturl">
<OPTION>
<OPTION VALUE="./url0.html">0
<OPTION VALUE="./url1.html">1
<OPTION VALUE="./url2.html">2
</SELECT>
</FORM>

長月 1999/09/23(木) 23:31:12
selectで検索すれば、似たようなことが出てきます。
../199909/99090029.htm
../199906/99060252.htm
が参考になるでしょうか?

SDS 1999/09/24(金) 14:40:25

ついでに質問させてください。

<SCRIPT LANGUAGE="JavaScript">
<!--
function navi() {
location=foos.slcturl.options[foos.slcturl.selectedIndex].value;
}
//-->
</SCRIPT>

<FORM NAME="foos">
<SELECT onChange="navi()" NAME="slcturl">
<OPTION>
<OPTION VALUE="./url0.html">0
<OPTION VALUE="./url1.html">1
<OPTION VALUE="./url2.html">2
</SELECT>
</FORM>

この方法は理解できるのですが、URLをOPTION VALUEに指定しないやり方はないでしょうか?
なぜならOPTION VALUE値はデータベースのキーに設定されているため
ここにはキーをセットしたいのです。

ばかぼん 1999/09/24(金) 15:51:38
猫さんのを改造させていただきました。
こんなのは駄目ですか?

<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function navi() {
    len = foos.slcturl.options[foos.slcturl.selectedIndex].value.length ;
    n = foos.slcturl.options[foos.slcturl.selectedIndex].value.indexOf("@", 0);
    url = foos.slcturl.options[foos.slcturl.selectedIndex].value.substring(0, n-1);
    key = foos.slcturl.options[foos.slcturl.selectedIndex].value.substring(n+1, len);
    alert( "url="+url +"  key=" +key ) ;
    location=url;
}
//-->
</SCRIPT>
</HEAD>

<BODY>
<FORM NAME="foos">
<SELECT onChange="navi()" NAME="slcturl">
<OPTION>
<OPTION VALUE="./url0.html@KEY0">0
<OPTION VALUE="./url1.html@KEY1">1
<OPTION VALUE="./url2.html@KEY2">2
</SELECT>
</FORM>
</BODY>
</HTML>

あとはURLを配列で持って、もしKEYが数値なら配列の添え字
に使用する。
あとはif文で振り分ける。

ばかぼん 1999/09/24(金) 15:58:39
あ、間違えた。
>url = foos.slcturl.options[foos.slcturl.selectedIndex].value.substring(0, n-1);
url = foos.slcturl.options[foos.slcturl.selectedIndex].value.substring(0, n);
でした。
nの直前までの文字でしたね。

長月 1999/09/24(金) 18:21:00
URLを配列で管理すれば....option valueについては、割愛してるけど。

<SCRIPT Language="JavaScript">
var url_name = new Array("link1.html","link2.html","link3.html");

function jump(){
Sel = document.forms[0].elements[0].selectedIndex ;
location.href = url_name[Sel];
}
</SCRIPT>

しまぶ [E-Mail] 1999/09/24(金) 18:42:03
[[解決]]
リンクできました。みなさん、ありがとうございます。
でも、猫さん、scriptの部分は書き換えるところはないのですか。
formの内だけを書き換えたらできましたが・・・・。

1999/09/24(金) 23:41:10
>formの内だけを書き換えたらできましたが・・・・。
フォームとセレクトボックスの名前のことでしょうか?
それならfoosとslcturlを対応させる必要があります。
でも、ちゃんと動いてるなら問題ないと思います。../199909/99090029.htm
のkomさんのソースの方が良いかも知れませんね。
基本的にはどちらでも同じ事なんですけど。

[上に] [前に] [次に]