2013-04-17 229 views
0

我的代碼從數據庫中讀取2個數據,如果這些數據是特定值,則應刪除值2,3,4,5,6,7, 8選擇名爲smjer。數據庫中的值在外部.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提前。

+0

PHP位於服務器上,所以它只能在發出請求(GET或POST)時動作。如果您希望PHP更改您的選擇,您需要提交表單或在準備好接受用戶所做更改時使用AJAX。 – thelr

回答

2

而不是運行你的JavaScript一次onready,將其綁定到選擇的有問題的變化事件:

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

相關問題