根据选择的其他下拉列表填充一个下拉列表
Populate one dropdown list based on the selection of other dropdown list
我想创建两个下拉列表,类别和项目。
如果我选择名为汽车的类别之一,则项目下拉列表应具有本田,沃尔沃,日产。
如果我选择名为手机的类别之一,则项目下拉列表应该有这款iPhone,三星,诺基亚。
我该怎么做?我知道我不能用纯HTML做到这一点。
WORKING DEMO http://jsfiddle.net/kasperfish/r7MN9/3/(with jquery(
cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
if(cat=='car'){
cars.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
if(cat=='phone'){
phones.forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
}
更新:使用 eval(( 可以根据需要添加任意数量的数组。 JSFIDDLE 演示
cars=new Array("Mercedes","Volvo","BMW","porche");
phones=new Array('Samsung','Nokia','Iphone');
names=new Array('Kasper','Elke','Fred','Bobby','Frits');
colors=new Array('blue','green','yellow');
populateSelect();
$(function() {
$('#cat').change(function(){
populateSelect();
});
});
function populateSelect(){
cat=$('#cat').val();
$('#item').html('');
eval(cat).forEach(function(t) {
$('#item').append('<option>'+t+'</option>');
});
}
有多种
方法可以完成此操作,具体取决于您的最终目标。 以下是 2 个最常见的。
这是基本过程:
- 页面加载时,初始下拉列表填充了选项,假设类别(汽车、卡车、SUV(和项目下拉列表已禁用。
- 用户从第一个下拉列表中选择一个值,有几种方法可以处理此问题:
AJAX(页面加载最少的最无缝体验(:
- 使用 Javascript 将 ajax 请求发送到 PHP 脚本(或任何其他处理程序(,其中包含类别下拉列表中所选选项的值作为 post 或请求参数。
- 根据我们的类别检索项目下拉列表的值,这些值可能来自我们的数据库、变量、静态文件或您可以想出的任何其他方式
- 返回我们的值作为对 AJAX 请求的响应(json、xml、纯文本,任何最适合你且你最习惯使用的值(
- 使用 Javascript(或者您可以使用像 jQuery 这样的库(,我们将 AJAX 请求中返回的选项插入到项目下拉列表中并启用它,以便用户可以进行选择。
- 从这里我们可以继续使用 AJAX 请求和响应,或者 POST 表单返回最终页面,或者您的特定用法要求的任何内容。
如果您不想使用 AJAX,您可以非常轻松地将表单发布到服务器端处理程序,从类别下拉列表中获取值,找到项目下拉列表中的值,然后呈现您的 HTML 响应,您可以在其中设置类别下拉列表的值并禁用它(因此,如果用户想要更改类别,则必须使用后退按钮(并填充项目下拉列表。
相关文章:
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在用户返回和上一个按钮时刷新下拉列表
- 如何为下拉列表的每个选项添加一个属性
- 在Twitter BootStrap嵌套下拉列表中托管一个选择列表(IE 9特定)
- 如何使用jquery将所选项目从一个下拉组列表(optgroup)移动到另一个下拉列表(optgroup)
- 如何强制用户从下拉列表和按钮中选择一个值以启用保存按钮
- 在另一个下拉列表中的选择上切换下拉列表中选项的可见性
- 将onclick事件附加到具有一个元素的下拉列表中
- 引导程序在单击另一个下拉列表时关闭下拉列表
- 如何通过选择下拉列表中的选项从另一个 php 文件中获取数据
- 如何只制作一个下拉列表在单击时下拉
- 通过硒选择一个javascript下拉列表
- 如何在 PHP 中使用 OnChange 事件的下拉列表中选择一个选项后,对大量数据行设置分页
- 如何使用 asp.net 中的另一个下拉列表更改下拉列表选定的索引和可见性
- jQuery - 根据属性在所选选项之后的下拉列表中获取下一个选项的总值
- 如何填充下拉列表,从javascript中的另一个下拉列表中排除任何一个选项
- 选择“第一个下拉列表”以与另一个下拉列表的值相同
- 我创建了一个下拉列表,以及如何显示所选项目的其他列数据
- 导航到另一个页面后,bootstrap下拉列表将不可用
- 使用jquery如何自动删除下拉列表中的第一个空白选项(如果它依赖于另一个选项)