うちのカレーにはこれが入ってる!って食材ありますか?

メニューの選択項目に応じて、もう1つのメニューの内容を変更する方法

2つのコンボがります。

1個目は、メーカーを選択します。
2個目は、機種を選択します。

下記ソースでは、valueの値が取得でいないようです。

(例)
makerでドコモを選択したらvalueに1をセット
sendwayでドコモ機種(2)を選択したらvalueに2をセット
このようなことを実現したいのですが...

よろしくお願いします。

<script language="JavaScript"><!--
menuItem = [["ドコモ機種(1)","ドコモ機種(2)"]["ドコモ以外機種"]];
function setMenuItem(n)
{
len = document.myForm.sendway.options.length;
for (i=len-1; i>=0; i--)
{
document.myForm.sendway.options[i] = null;
}
for (i=0; i<menuItem[n].length; i++)
{
document.myForm.sendway.options[i] = new Option(menuItem[n][i],menuItem[n][i]);
}
}
// --></script>


<select name="maker" onChange="setMenuItem(this.selectedIndex)">
<option value="1" <?= $val?>>ドコモ</option>
<option value="2" <?= $val?>>ドコモ以外</option>
</select>
<select name="sendway" >
<option value="1" <?= $val?>>ドコモ機種(1)</option>
<option value="2" <?= $val?>>ドコモ機種(2)</option>
<option value="3" <?= $val?>>ドコモ以外機種</option>
</select>

A 回答 (1件)

ご質問の意味がわかりかねますが…



とりあえず、そのスクリプトを動作させたいのなら、
1.<form>タグ(myForm)を作成
2.>menuItem = [["ドコモ機種(1)","ドコモ機種(2)"]["ドコモ以外機種"]];
 を二次元配列にしたいのなら、][の間に「,」を追加。

で、一応は動くと思いますが…?
でも、このままだと、初期状態では2番目のセレクトは3種類とも表示されていて選択できるようになっているので、なんだか矛盾しているように思えるけど…?

一方で、
>makerでドコモを選択したらvalueに1をセット
>sendwayでドコモ機種(2)を選択したらvalueに2をセット
ご提示のスクリプトは↑の内容とは関係のないスクリプトですし、もともとのHTMLの記述がそのようになっていると思いますが?
(サブミットした時に、selectedIndexのvalue値が入るはずなので)

なお、<?= $val?>はphpだと思いますが、ここに何を代入すつもりなのでしょうか?($valがどの様な値なのか不明)
普通に推測すると、ここに入る属性は「selected」とか「disabled」くらいしか思いつきませんが…
「メニューの選択項目に応じて、もう1つのメ」の回答画像1
    • good
    • 0

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


おすすめ情報