function Aj(nomCombo, value, libelle){ nomCombo.length = nomCombo.length + 1; nomCombo.options[nomCombo.length-1].text=libelle; nomCombo.options[nomCombo.length-1].value=value; } // niveau = niveau de profondeur // val = valeur de l'élément sélectionné de la combo source function RUB_refresh(niveau, val){ var cb; var bDefaut = false; // combo à rafraichir cb = eval('document.formu.RUB_ref_' + niveau); // si pas combo de ce niveau, on stoppe le traitement (descendu au + bas) if (cb == null) {return;} // rend visible la combo "cible" (nom div = nom combo) montre(cb.name); // combo avec un élément par défaut? if (cb.length > 0){ if (cb.options[0].value == ''){bDefaut=true;} } // combo vide OU une valeur par défaut if (bDefaut) {cb.length=1;} else {cb.length=0;} // rafraichissement de la combo /******************** rafraichissement niveau 2 ********************/ if (niveau == 2){ if(val == '6_MO') {Aj(cb,'1897_QD','Kymco-Quad (2)');} } /******************** rafraichissement niveau 3 ********************/ if (niveau == 3){ } /******************** rafraichissement niveau 4 ********************/ if (niveau == 4){ } CHA_refresh(niveau, val); // s'il n'y a pas d'élément OU seul le défaut : on cache la combo // sinon, on rafraichit la combo de niveau + bas if ((cb.length == 0) || ((cb.length == 1) && bDefaut)){ cache(cb.name); if (niveau < 4) {RUB_refresh(niveau+1, '');} } else { // rafraichissement combo de niveau + bas if (niveau < 4) { RUB_refresh(niveau+1, cb.options[cb.selectedIndex].value); } } } // dans le cas refresh forcé à l'init de la page // forcer la sélection de l'élément de la combo function RUB_putSelected(niveau, val){ var cb, i; // combo à sélectionner cb = eval('document.formu.RUB_ref_' + niveau); if (cb != null) { if (cb.selectedIndex != -1){ for (i = 0; i < cb.length; i++){ if (cb.options[i].value == val) {cb.selectedIndex = i;} } } } } // à l'affichage de la page // initialisation des combos + positionnement sur l'élément choisi RUB_refresh(2, '6_MO'); RUB_putSelected(1, '6_MO');