2012-02-07 9 views
0

2つの選択フィールドを持つフォームを持つ単純なPHPスクリプトがあります。どちらも単純な数値です。スクリプトは、2つのフィールドの合計の最大値も持っています。私は動的に2番目のドロップダウンをフィルタリングしようとしているので、ユーザは最大値以上を選択できません。たとえば、最大値が10の場合、最初の選択ドロップダウンリストには1〜10が表示されます。 6を選択したユーザーは、2番目の選択ドロップダウンで0〜4を選択することしかできません。1つのHTMLをフィルタリングするには、別のドロップダウンリストに基づいてドロップダウンを選択してください。

これはかなり簡単ですが、私はJavaScript/jQueryの初心者です。私はのSOとGoogleを検索しましたが、私のニーズに合わせてカスタマイズする方法はわかりませんが、どこから始めたらよいか分かりません。私がすでに持っているコードを提供しましたが、これは明らかに必要なフィルタリングを持っていません。事前に

<script type="text/javascript"> 
    var max = <?php echo $maximum; ?>; 
</script> 

<select name="dropdown1" id="dropdown1"> 
<?php 
for ($i = 1; $i <= $maximum; $i++) 
{ 
    echo '<option value="'.$i.'">'.$i.'</option>'; 
} 
?> 
</select> 
<select name="dropdown2" id="dropdown2"> 
<?php 
for ($i = 0; $i <= $maximum; $i++) 
{ 
    echo '<option value="'.$i.'">'.$i.'</option>'; 
} 
?> 
</select> 

ありがとう:

いくつかのサンプルコードは(すでに定義された$の最大を想定します)。

私は今それ自身の.jsファイルにjqueryの次の部分を持っている:

$(document).ready(function() { 
// var max ?? 
$("#dropdown1").change(function() { 
    var selectedVal = $(this).find("option:selected").val(); 
    $("#dropdown2 option").removeAttr("disabled").removeAttr("selected"); 
    $("#dropdown2 option").each(function() { 
     if($(this).val() > max - selectedVal*1) 
      $(this).attr("disabled", "disabled"); 

    });  
}); 
}); 

しかし、私はjQueryのに私のPHPスクリプトから$の最大値を取得立ち往生ビットです。私はJavaScript変数を作成しなければならないが、それをjQueryに渡す方法はあまりよく分かっていない。私はjQueryを同じPHPスクリプトに埋め込んで、それをエコーするだけで、それをパラメータとして渡すことはあまり確かではない場合、どのように行うのかを理解することができます。

+0

ためlegendofawesomenesscodeを更新します。しかし、変数をjQueryスニペットに渡す方法がわかりません。 – Biggles

答えて

0

私はコメントに基づいて自分のコードを更新しましたあなたのケース

+0

これは私が欲しいものに大いに沸いていますし、さらに良く、私はそれを理解していると思います... jQueryのパラメータ渡しを理解する必要があります。 – Biggles

1

Hereは動作中のフィドルです。そして、関連のjQueryコード:

$(document).ready(function() { 
    $("#select1").change(function() { 
     var selectedVal = $(this).find("option:selected").val(); 

     $("#select2 option").each(function() { 
      if($(this).val() >= selectedVal) 
       $(this).attr("disabled", "disabled"); 

     }); 
    }); 
}); 
+0

フィドルのためにちょっと変わったよ –

関連する問題