有谁能告诉我如何从下拉列表的选定项目中加载列表框?
假设我有一个下拉列表,其中包含“option1 = male”& “选项2 =女” 我希望在选择男性时,列表框中会显示男性员工列表。
补充说明: 如果员工姓名保存在文件/数据库中,我想知道如何做到这一点?
答案 0 :(得分:0)
我认为你希望它以异步方式填充另一个列表框?要实现这一点,您需要做的是使用JavaScript并在文档加载时调用函数。例如
$(document).ready(function(){
exampleFucntion();
});
当文档加载时,这将调用函数“exampleFunction”。在此函数中,可以放置以下代码,其中#dropdownbox将是HTML下拉框的ID。
$("#dropdownbox").change(exampleOnDropDownChanged);
这将再次调用一个函数,该函数在每次下拉框的索引更改时执行操作。在被调用函数内部,您可以将代码动态创建另一个下拉框,其中包含男性或女性员工的详细信息(或者只填充现有的下拉列表)。在函数中,您可以使用“if”语句来获取男性或女性员工,然后执行相应的代码来填充下拉列表。此函数还可以调用PHP页面,该页面可以检索数据,然后填充下拉列表。
我所描述的方式不需要刷新HTML页面。我还建议您阅读JavaScript和AJAX以及基本技术,例如填充下拉框。
答案 1 :(得分: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>
答案 2 :(得分:0)
这就是你要追求的吗?
从下拉框中选择特定选项将触发特定json文件的ajax调用。成功后,我们将文件的内容显示在列表框中。 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;
}
});
});