2014-02-10 85 views
0

任何人都可以告訴我如何從下拉列表中選擇的項目加載列表框?下拉列表中的列表框

比方說,我有一個包含「選項1 =男」 &「選項2 =女」 我想要選擇男性時,在列表框中顯示男性僱員的列表的下拉列表。

添加了注意事項: 我想知道我怎麼能做到這一點,如果員工的名字保存在文件/數據庫?

+0

是ü希望這樣的事情??? http://jsfiddle.net/wizam/52LyU/1/ –

+0

有類似的票證可以在這裏看到:http://stackoverflow.com/questions/1085801/how-to-get-the-selected-value-下拉列表使用javascript – Tgrosk

回答

0

這是你在追求什麼?

從下拉框中選擇一個特定的選項將觸發Ajax調用特定JSON文件。成功時,我們將文件內容顯示在列表框中。 This只是一個演示。

代碼示例:

$(document).ready(function() { 
     var listbox = $('#listbox'), 
      populateListbox = function(data) { 
       for (var i = 0, item; i < data.length; i++) { 
       item = data[i]; 

       var option = $('<option>').val(item.age).text(item.name); 

       listbox.append(option); 
       } 

       showListbox(); 
      }, 
      emptyListBox = function() { 
       listbox.empty(); 
      }, 
      showListbox = function() { 
       listbox.removeClass('hide'); 
      }, 
      hideListbox = function() { 
       listbox.addClass('hide'); 
      }; 

     $('#dropdown').on('change', function (e) { 
     emptyListBox(); 
     hideListbox(); 

     var selectedOption = $("option:selected", this), 
      selectedValue = this.value; 

      switch (selectedValue) { 
      case 'male': 
       $.getJSON("male.json", populateListbox); 
       break; 
      case 'female': 
       $.getJSON("female.json", populateListbox); 
       break; 
      } 
     }); 
}); 
+0

補充說明:我想知道如果員工姓名保存在文件/數據庫中,我該怎麼辦? (我是一個初學者爲noob問題抱歉) –

+0

上面的例子已經從文件中提取數據:male.json和female.json。這樣做的行是:'.getJSON(「male.json」,populateListbox);''和'$ .getJSON(「female.json」,populateListbox);'。只需檢查左側面板[此處](http://plnkr.co/edit/KVQLjrhBhw3fJU9UkW6p?p=preview),即可看到2個json文件。 –

+0

要將數據保存到數據庫中,您可能需要一個服務器端Web服務來公開一些端點。使用js(例如jQuery getJSON方法)消費這些端點將返回數據,然後您可以將其連接到上面的邏輯中。 –

0

我推測,你想讓它異步填充另一個列表框?你需要做的就是使用JavaScript並在文檔加載時調用一個函數。例如

$(document).ready(function(){ 
    exampleFucntion(); 
    }); 

這將在文檔加載時調用函數「exampleFunction」。在這個函數裏面,下面的代碼可以放在#dropdownbox是你的HTML下拉框的ID。

$("#dropdownbox").change(exampleOnDropDownChanged); 

這又會調用一個函數,每次下拉框的索引更改時執行一個操作。在被調用函數內部,您可以將代碼動態地與男性或女性員工的詳細信息(或僅填充現有下拉列表)一起創建另一個下拉框。在這個函數中,你可以用'if'語句來獲得男性或女性僱員,然後執行相應的代碼來填充下拉菜單。這個函數也可以調用一個可以檢索數據然後填充下拉菜單的PHP頁面。

我所描述不需要HTML頁面被刷新的方式。我還建議您閱讀JavaScript和AJAX以及基本技術,例如填充下拉框。

0

我認爲這是你在找什麼。 DEMO HERE 選擇您的性別並顯示相關的列表框。

<form id="survey" action="#" method="post"> 
    <div id="section1"> 
     <label for="Gender">Select employee gender.</label> 
     <select id="Gender" onchange="selection(this);"> 
      <option value="Gender">---Select---</option> 
      <option value="Male">Male</option> 
      <option value="Female">Female</option> 
     </select> 
    </div> 
    <div id="section2" style="display:none;">Please select employee gender from above.</div> 
    <div id="section3" style="display:none;">Male Employees 
     <br /> 
     <label for="Jim">Jim</label> 
     <input type="radio" id="Jim" /> 
     <label for="Tom">Tom</label> 
     <input type="radio" id="Tom" /> 
     <label for="Sam">Sam</label> 
     <input type="radio" id="Sam" /> 
    </div> 
    <div id="section4" style="display:none;">Female Employees<br /> 
     <label for="Kate">Kate</label> 
     <input type="radio" id="Kate" /> 
     <label for="Claire">Claire</label> 
     <input type="radio" id="Claire" /> 
     <label for="Sue">Sue</label> 
     <input type="radio" id="Sue" /> 
    </div> 
</form> 

<script> 
var sections = { 
    'Gender': 'section2', 
     'Male': 'section3', 
     'Female': 'section4' 
}; 

var selection = function (select) { 

    for (var i in sections) 
    document.getElementById(sections[i]).style.display = "none"; 

    document.getElementById(sections[select.value]).style.display = "block"; 

}; 
</script> 
+0

謝謝,這anwser是我的問題的重要組成部分,我想知道如果員工名稱存在於數據庫中,我該如何做到這一點? –