0

私のコードはデータベースから 2 つのデータを読み取り、それらのデータが特定の値である場合、smjer と呼ばれる選択から値 2,3,4,5,6,7,8 を削除する必要があります。データベースからの値は、外部の .php スクリプトで読み取られ、GET を使用して Web ページに送り返されます。私の問題は次のとおりです。ある特定のケースでは、コードの 2 番目の選択が 3 に設定されている場合、コードは select smjer から 2 番目と 3 番目の値のみを削除する必要があります。私はこれをjQueryで実行しましたが、動作しますが、私の問題は、他の選択の値を変更すると、たとえば2から値3を選択しても何も起こらないため、ページを更新する必要があるため、変更適用されます。選択は次のようになります。

<select name="smjer" class="smjer">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>

2 番目の選択:

<select name="godina" class="upis">
<option value="1" >1.</option>
<option value="2" >2.</option>
<option value="3">3.</option>
</select>

そして、削除するためのコード:

<?php }
if(($_GET['program1'])=='1'&&($_GET['stupanj_spreme1']=='2'))
{?>
<script>
$(document).ready(function(e) {
    var ary=[2,3,4,5,6,7,8];
var provjera=$('.upis').val();
if(provjera=='3')
{
    var ary=[2,3];
}
$('[name=smjer] option').filter(function(){
return ($.inArray(parseInt(this.value),ary) >-1);
}).remove();
});
</script>
<?php } ?>

このようなことはAJAXで行うべきだとネットで読んでいますが、AJAXについては何も知らないので、避けたいと思います。事前にTnx。

4

1 に答える 1

2

準備ができたら JavaScript を実行する代わりに、問題の選択の変更イベントにバインドします。

$(document).ready(function(e) {
  // When the value of the select changes, run this:
  $('.upis').change(function(){
    var ary=[2,3,4,5,6,7,8];
    var provjera=$('.upis').val();
    if(provjera=='3')
    {
      var ary=[2,3];
    }
    $('[name=smjer] option').filter(function(){
      return ($.inArray(parseInt(this.value),ary) >-1);
    }).remove();
  });
});

また、ベスト プラクティス: 「upis」をこのページの別の要素に適用したくない場合は、class の代わりに id を使用することを検討してください。

于 2013-04-17T12:40:39.900 に答える