4 level dynamic combo box

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Kalpesh Liya
    New Member
    • Mar 2012
    • 1

    4 level dynamic combo box

    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)


    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();
    });
    Last edited by acoder; Mar 16 '12, 11:53 PM. Reason: Added [code] tags - please use them.
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    Do you have the corresponding HTML code? This would make it easier to test and debug.

    Comment

    Working...