0

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

二选一:

<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,不如将其绑定到相关 select 的 change 事件:

$(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。

于 2013-04-17T12:40:39.900 回答