dポイントプレゼントキャンペーン実施中!

こんばんわ。
二つの連動したセレクトメニューがあって、別ページにもまったく同じものがあるんですが、最初のページで選ばれた値を別ページを読み込んだときにセレクトメニューに初期設定として渡すことはできますか?

いろいろWEBでサンプル等探しておりましたが、ニッチもサッチもいきません。どなたかご教授ください。

A 回答 (4件)

今回の作業はjavascriptですべきことでは


ない気が・・・。#3で書いた埋め込みを
実現してください。

例示のソースにあるCreateは勝手に指定し
たものだと思うのでフォローにも限界があ
りそうですが、selectは動的に作成してい
るのですか?
スタティックに最初から手で書いたほうが
よいのでは?

とはいえ、質問の件は以下のとおりです。
仮にoption21番目の項目にselectedをつけ
るなら以下です。

document.getElementById('lstsel1').options[20].selected=true;

optionsは0からはじまるので1ひきます。

もしここで、getなどで受け取ったデータ
内容を元にselectedをつけるのであれば
forでoptionsをまわしてvalueを参照し、
適合したところに.selected=true;をつけ
ればよいでしょう。
その辺すでに#2で例示してあります
    • good
    • 0

データの受渡さえPHPでやるなら、非常に簡単な話しで、


onloadとかそんなレベルの話じゃなく、クライアント
依存しないように最初からデフォ値を埋め込みます。
以下はgetでしてますがpostでもできます。

//a.htm
これはAです。<br>
<form action="b.php" method="get" name="f">
<select name="s" onChange="this.form.submit()">
<option value="">----------
<option value="001">データ001
<option value="002">データ002
<option value="003">データ003
<option value="004">データ004
</select>
</form>

//b.php
<?PHP
$s_get=$_GET["s"];

$s_option["001"]="データ001";
$s_option["002"]="データ002";
$s_option["003"]="データ003";
$s_option["004"]="データ004";

$s_selected[$s_get]="selected";

foreach ($s_option as $key => $val){
$body.="<option value=\"".$key."\" ".$s_selected[$key].">".$val."\n";
}

?>

これはBです。<br>
<form name="f">
<select name="s">
<option value="">----------
<?= $body ?>
</select>
</form>

この回答への補足

有難うございます。ほんとに恐縮ですが追加質問させて下さい。
onloadを使う場合はどのようにoption値にselectedをつけるのでしょうか?

以下使用しているスクリプトです。

function CreateList()//body要素のonLoad属性でコールされる
{
Create(document.getElementById('lstsel1'), strsel1);
Create(document.getElementById('lstsel2'), strsel22);
}                            ↑
                           この配列

補足日時:2005/09/09 13:48
    • good
    • 0

もうすこし具体的な例をあげていただけば回答しやすい


のですが、一応この程度ならできます。
結局ページ間でデータを渡すのはjavascriptではムリが
あります。ソース見てもらえればわかりますが、
かなりムリヤリです。

データの受け渡しはPHPやCGIに任せる方がムダが
少なくてすみますよ。以下ソース

//a.htm
これはAです。<br>
<form action="b.htm" method="get" name="f">
<select name="s" onChange="this.form.submit()">
<option value="">----------
<option value="001">データ001
<option value="002">データ002
<option value="003">データ003
<option value="004">データ004
</select>
</form>

//b.htm
これはBです。<br>
<form name="f">
<select name="s">
<option value="">----------
<option value="001">データ001
<option value="002">データ002
<option value="003">データ003
<option value="004">データ004
</select>
</form>
<script language=javascript>
var a=document.location.toString().split("?")
if (a.length==2){
var b=a[1].split("=")
eval(b[0]+"=\""+b[1]+"\"")
var e=document.forms["f"].elements[b[0]]
for (var i=1;i<=e.length;i++){
if(e.options[i].value==eval(b[0])){
e.selectedIndex=i
break
}
}
}
</script>

この回答への補足

おはようございます。#1さん#2さん有難うございます。
おっしゃるとおりデータの受け渡しはPHPで考えてます。

ただ受け渡したデータを、連動した二つのセレクトボックスに初期設定として
(onload属性でコールすればいいんですかね?)配置したいんです。

具体的な例を挙げずに、ソースまで書いていただいて有難うございます。
javascriptは初心者で、連動するセレクトメニューは以下のサンプルを使っております。宜しくお願いします。
http://www.parkcity.ne.jp/~chaichan/src/javasc31 …

補足日時:2005/09/09 09:12
    • good
    • 0

別ページを呼び出すときに


form method=GETを使うか
あるいは、リンクで直接URL?name=value
のようにして呼び出せば、呼び出されたページで
location.searchプロパティで?以降の文字が取り出せます。
この値を使ってセレクトメニューを設定すればいいでしょう

この回答への補足

ご回答有難うございます。

セレクトメニューの設定ですが、連動した二つのセレクトボックスのoption値
に動的にselectedをつけることってできますか?

当方初心者で、いろいろなサイトを参考にしましたが、
どうにかすると、メニューの何番目が選ばれたかを変数にして渡して、別ページの連動したセレクトボックスにselectedがつけることができるみたいなんですけど。

すみません分かりにくい質問で。宜しくお願いします。

補足日時:2005/09/08 19:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!