below is the javascript for 4 level dynamic combo box
its working proper upto 3rd level, but at 4th level I face some issue. I have given the value in ydist for 24, 30 & 36...but is show the only last variation value in html file (its show only value for 36, its didn't show the value for 24 & 30.....as I put more value 42, 48,.....its hide the previour value & show only the last value given in the script)
its working proper upto 3rd level, but at 4th level I face some issue. I have given the value in ydist for 24, 30 & 36...but is show the only last variation value in html file (its show only value for 36, its didn't show the value for 24 & 30.....as I put more value 42, 48,.....its hide the previour value & show only the last value given in the script)
Code:
// State lists
var ystates = new Array();
ystates['35'] = new Array('24','30','36','42','48','54','60','66','72');
ystates['75'] = new Array('25','37','50','56','62','75','81','87','94','100','112','125','137','150','162','175','192');
// City lists
var ycities = new Array();
ycities['35'] = new Array();
ycities['35']['24'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['30'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['36'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['42'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['48'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['54'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['60'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['66'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['35']['72'] = new Array('36','42','48','54','60','66','72','78','84','90','96');
ycities['75'] = new Array();
ycities['75']['25'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['37'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['50'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['56'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['62'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['75'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['81'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['87'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['94'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['100'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['112'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['125'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['137'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['150'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['162'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['175'] = new Array('36','48','60','72','85','96','108','120','132','144');
ycities['75']['192'] = new Array('36','48','60','72','85','96','108','120','132','144');
// District lists
var ydists = new Array();
ydists['35'] = new Array();
ydists['35']['24']= new Array();
ydists['35']['24']['36'] = new Array('594');
ydists['35']['24']['42'] = new Array('607');
ydists['35']['24']['48'] = new Array('628');
ydists['35']['24']['54'] = new Array('648');
ydists['35']['24']['60'] = new Array('658');
ydists['35']['24']['66'] = new Array('679');
ydists['35']['24']['72'] = new Array('699');
ydists['35']['24']['78'] = new Array('712');
ydists['35']['24']['84'] = new Array('732');
ydists['35']['24']['90'] = new Array('743');
ydists['35']['24']['96'] = new Array('763');
ydists['35'] = new Array();
ydists['35']['30']= new Array();
ydists['35']['30']['36'] = new Array('594');
ydists['35']['30']['42'] = new Array('607');
ydists['35']['30']['48'] = new Array('628');
ydists['35']['30']['54'] = new Array('648');
ydists['35']['30']['60'] = new Array('658');
ydists['35']['30']['66'] = new Array('679');
ydists['35']['30']['72'] = new Array('699');
ydists['35']['30']['78'] = new Array('712');
ydists['35']['30']['84'] = new Array('732');
ydists['35']['30']['90'] = new Array('743');
ydists['35']['30']['96'] = new Array('763');
ydists['35'] = new Array();
ydists['35']['36']= new Array();
ydists['35']['36']['36'] = new Array('594');
ydists['35']['36']['42'] = new Array('607');
ydists['35']['36']['48'] = new Array('628');
ydists['35']['36']['54'] = new Array('648');
ydists['35']['36']['60'] = new Array('658');
ydists['35']['36']['66'] = new Array('679');
ydists['35']['36']['72'] = new Array('699');
ydists['35']['36']['78'] = new Array('712');
ydists['35']['36']['84'] = new Array('732');
ydists['35']['36']['90'] = new Array('743');
ydists['35']['36']['96'] = new Array('763');
function setyStates() {
cntrySel = document.getElementById('ycountry');
stateList = ystates[cntrySel.value];
changeSelect('ystate', stateList, stateList);
setyCities();
}
function setyCities() {
cntrySel = document.getElementById('ycountry');
stateSel = document.getElementById('ystate');
cityList = ycities[cntrySel.value][stateSel.value];
changeSelect('ycity', cityList, cityList);
}
function setyDist() {
cntrySel = document.getElementById('ycountry');
stateSel = document.getElementById('ystate');
citySel = document.getElementById('ycity');
distList = ydists[cntrySel.value][stateSel.value][citySel.value];
changeSelect('ydist', distList, distList);
}
function changeSelect(fieldID, newOptions, newValues) {
selectField = document.getElementById(fieldID);
selectField.options.length = 0;
for (i=0; i<newOptions.length; i++) {
selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]);
}
}
// Multiple onload function created by: Simon Willison
// http://simonwillison.net/2004/May/26/addLoadEvent/
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
setyStates();
});
Comment