2011-12-28 12 views
0

前のドロップダウンで選択されたドロップダウンで、選択したオプションを削除する必要があります。 たとえば、1番目、2番目、3番目のドロップダウンにA、B、C、Dが含まれています。ドロップダウン1でAを選択すると、ドロップダウン2と3の両方に表示されません。同じことがドロップダウン2と3の両方に起こります。以前のドロップダウンで選択したオプションを削除します。

しかし、私のコードでは、物事はこのように実際には、次のとおりです。

私はPHPでループを介して取り込まれ、いくつかのドロップダウンを持っています。

for($y=1; $y<=5; $y++){ 
echo "<select id='seatplan$x' name='selectSeatplan[]' onChange='callSave($x,$sid)'>"; 

    echo "<select name='selectSeatplan[]'>"; 
    echo "<option value=''> ------------ </option>"; 
      seatplanDdNames($sid); 
    echo "</select>"; 

} //END FOR Y<-5 

その * seatplanDdNames($のSID)に注意してください - 名前をデータベースから生成されている関数であり、ここで私はそれからオプションをエコーする方法である。そして、javascript関数のcallSave

function seatplanDdNames($sid) { 
    echo "<option value='$studentno' onClick='callSave($x,$sid)'>$name</option>"; 
} 

を:

function callSave(x,sid){ 

    var name = 'seatplan' + x; 
    name = name.toString(); 
    var selectBox = document.getElementById(name); 
    var strUser = selectBox.options[selectBox.selectedIndex].value; 
    var js = document.createElement('script'); 
     js.setAttribute('language', 'javascript'); 
     js.setAttribute('type', 'text/javascript'); 
     js.setAttribute('src', 'seatplan-getvalues.php?uid='+strUser+'&sid='+sid+'&rtype=CLS&seatno='+x); 
    document.body.appendChild(js); 

    return false; 
    } 
  • 機能callSaveは、一時テーブルで選択したオプションが保存されます。ちょうど私がそれを好きな方法。問題は、私はドロップダウンで提供されるデータの冗長性を避けなければならないということです。

助けが必要ですか?ありがとうございました!

+0

複数選択を使用したくないですか?またはチェックボックス?あなたのニーズにもっと適しているようです。 – Qtax

+0

Hm、私がここにいるのは、座席計画のための機能です。各生徒は座席に割り当てられます。ドロップダウンには学生の名前が表示されます。 :) – kjG

答えて

0

Hereは、純粋なHTML/JSの例です。基本的にページの読み込みには、それぞれの選択に同じオプションがあります。何かを選択すると、他の選択肢ではこのオプションは非表示になります。

+0

ありがとうございました!コードを少し消化します! :DD – kjG

+0

私はもう少し賛成が必要です、行ごとにコード行を説明できますか?私はそれを理解するのに苦労している。各オプションに値が設定されている場合、コードは機能していないようです。 : – kjG

+0

私はいくつかのコメントhttp://jsfiddle.net/cUtTM/3/を書きましたが、今修正された小さなバグを発見しました。 – Krzysztof

0

ロロからのコードは非常にうまく動作しますが、私はOSXとiOSでクローム/サファリでの問題を回避するためにo.disabled = truestyle.dispaly = 'none'を変更するために必要な(要素が隠されていない)

if (p == undefined || p == s) { 
    o.disabled = false; 
} 
// option otherwise 
else { 
    o.disabled = true; 
} 

動作が異なっているが、結果同じです。

関連する問題