2012-01-17 25 views
0

在我以前提出的問題Dynamic dependent select menus我發佈了此示例代碼:http://jsfiddle.net/Bs5Db/50/。 這是特定jQuery腳本的HTML版本。 用戶@ jSweazy幫我指出,我應該更新jquery.uniform腳本,每次我從第一個菜單中選擇一個新的狀態。 示例的工作版本位於:http://jsfiddle.net/Bs5Db/53/。 我知道菜單的默認選項太大,但很容易修復....動態相關選擇菜單jQuery PHP版本

我現在的問題是我實際上使用PHP版本的腳本。在該版本中用$ .uniform.update()更新jquery.uniform;沒有辦法。實際上,當我插入更新命令時,第二個菜單不再可見。

的PHP版本是下面的...

$(document).ready(function(){ 
function populate() { 
if($('#state').val() == 'AK' || $('#state').val() == 'DC') // Alaska and District  Columbia have no counties 
{ 
    $('#county_drop_down').hide(); 
    $('#no_county_drop_down').show(); 
    } else { 
    fetch.doPost('../getCounties.php'); 
    } 
    } 
    $('#state').change(populate); 
    var fetch = function() { 
    var counties = $('#county'); 
    return { 
    doPost: function(src) { 
$('#loading_county_drop_down').show(); // Show the Loading... 
$('#county_drop_down').hide(); // Hide the drop down 
$('#no_county_drop_down').hide(); // Hide the "no counties" message (if it's the case) 
if (src) $.post(src, { state_code: $('#state').val() }, this.getCounties); 
    else throw new Error('No SRC was passed to getCounties!'); 
}, 

getCounties: function(results) { 

    if (!results) return; 
      var allCounties = $("<option value=\"All\">All Counties</option>"); 
    counties.html(results); 
    counties.prepend(allCities); 
    counties.val("All").attr('selected',true); 


$('#loading_county_drop_down').hide(); // Hide the Loading... 

$('#county_drop_down').show(); // Show the drop down 

} 
} 

}(); 

populate(); 
}); 

的getCounties.php被查詢的數據庫和檢索每個州的縣工作正常。 州和縣是兩個選擇菜單的名稱。 因此,如果任何人都可以給我一個關於如何在這個版本的腳本中實現縣菜單更新的建議,我將不勝感激。 Thanx提前花時間閱讀!

回答

1

我意識到,即使在這種情況下,你必須更新jquery.uniform,但因爲有其他樣式的元素,如單選按鈕,複選框等。 您必須插入$ .uniform.update('select')。因此,代碼的最後一部分變成...

$('#loading_county_drop_down').hide(); // Hide the Loading... 
$.uniform.update('select') 
$('#county_drop_down').show(); // Show the drop down 
+0

謝謝,這一個幫助我在選擇顯示/隱藏的果醬。小記,上面的代碼中有一個小的拼寫錯誤。它應該是:$ .uniform.update('select'); – 2012-03-07 10:55:54