我的代码从数据库中读取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,我想避免它。
与其只运行一次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。