帮助!我使用此代码获得2个下拉列表,以便第二个根据第一个选择填充子类别。
Populate another select dropdown from database based on dropdown selection
它适用于单个选择下拉列表,但我需要能够从第一个下拉列表中选择多个项目,并让它显示属于所有选定项目的子类别。
目前,当在第一个下拉列表中选择了其他项目时,第二个更新仅显示最新所选项目的子类别,可能是因为它正在执行“新选项”。有点功能。如果在第一个项目中选择了其他项目,如何将项目附加到第二个下拉列表?非常感谢。
[编辑]令人沮丧的是,我无法让它在jsfiddle上工作,但我会链接代码,希望它仍然有意义。不确定它是否包含
php?
答案 0 :(得分:0)
使用jQuery Change - http://api.jquery.com/change/
并在事件处理程序中有你的ajax请求来填充第二个多选
编辑: 评论与代码和生病更新如何做到这一点。 (使用jsfiddle)
答案 1 :(得分:0)
从原始代码链接(Populate another select dropdown from database based on dropdown selection)
不得不改变这一点: -
function updateSubCats(){
var catSelect = this;
var catid = this.value;
var subcatSelect = document.getElementById("subcatsSelect");
subcatSelect.options.length = 0; //delete all options if any present
for(var i = 0; i < subcats[catid].length; i++){
subcatSelect.options[i] = new Option(subcats[catid][i].val,subcats[catid][i].id);
}
到此: -
function updateSubCats(){
var catSelect = this;
var catid = this.value;
var testSelectionArray = new Array();
for(var j = 0; j < this.options.length; j++) {
if (this.options[j].selected) {
testSelectionArray.push(this.options[j].value);
}
}
var subcatSelect = document.getElementById("subcatsSelect");
subcatSelect.options.length = 0; //delete all options if any present
var k=0;
for(var i = 0; i < testSelectionArray.length; i++){
catid = testSelectionArray[i];
for(var j = 0; j < subcats[catid].length; j++){
subcatSelect.options[k++] = new Option(subcats[catid][j].val,subcats[catid][j].id);
}
}
}