根据另一个选择中的值从一个选择中删除选项

时间:2013-04-17 12:30:43

标签: php jquery

我的代码从数据库中读取2个数据,如果这些数据是特定值,那么它应该从名为smjer的select中删除值2,3,4,5,6,7,8。数据库中的值在外部.php脚本中读取,然后使用GET发送回网页。我的问题是下一个:在一个特定的情况下,当代码中的第二个选择设置为3时,代码应该只从select smjer中删除第二个和第三个值。我用jQuery完成了这个,它可以工作,但我的问题是,当我更改其他select的值,例如,从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>

第二次选择:

<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提前。

1 个答案:

答案 0 :(得分:2)

不是在onready上运行你的javascript,而是将它绑定到有问题的select的更改事件:

$(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”永久地应用于此页面上的其他元素,请考虑使用id而不是class。