Select interdipendente

  • Creatore Discussione Creatore Discussione Grinder
  • Data di inizio Data di inizio

Grinder

Nuovo Utente
19 Mag 2005
9
0
0
Ho due select che interagiscono tra di loro eliminandosi a vicenda le selezioni che in quel momento non sono pertinenti.

Ho modificato uno script al mio scopo
HTML:
<script type="text/javascript">
var marche = new Array();

marche['00'] = new Array('97','F8','G0','13','F3','11','AH','27','B4','AC','55','SA','F1','09','CD','03','H4','47','C6','EX','I6','G3','08','EB','B0','FX','FR','23','D3','D9','02','IA','52','59','24','62','H2','45','B6','10','G8','C2','B3','28','64','26','D8','44','D7','B9','36','65','66','01','88','A9','38','B2','L0','32','43','A6','34','H7','H8','12','TX','69','58','71','L1','91','54');
marche['97'] = new Array('33','36','05','04');
marche['F8'] = new Array('28','30','42');
marche['G0'] = new Array('26','40','08','84');
marche['13'] = new Array('16');
marche['F3'] = new Array('08','07');
marche['11'] = new Array('12','79','83');
marche['AH'] = new Array('17');
marche['27'] = new Array('29');
marche['B4'] = new Array('25','38');
marche['AC'] = new Array('59');
marche['55'] = new Array('77','05','83','04');
marche['SA'] = new Array('05');
marche['F1'] = new Array('04');
marche['09'] = new Array('18','19','25','38');
marche['CD'] = new Array('41');
marche['03'] = new Array('34');
marche['H4'] = new Array('30','32','59','80','05','89');
marche['47'] = new Array('31','40','60','06','05');
marche['C6'] = new Array('16','26','36');
marche['EX'] = new Array('31','32','49','51','59','08','07','84');
marche['I6'] = new Array('32','49','51','80');
marche['G3'] = new Array('26','34','04');
marche['08'] = new Array('13','19','25','38');
marche['EB'] = new Array('44','41');
marche['B0'] = new Array('04');
marche['FX'] = new Array('34','04');
marche['FR'] = new Array('74','86','01');

var prodotti = new Array();

prodotti['00'] = new Array('26','22','51','90','28','32','25','31','38','33','03','43','18','35','82','01','81','39','09','86','60','41','11','02','84','80','36','12','08','16','83','73','34','74','04','42','29','49','89','19','06','57','05','17','13','30','07','77','79','44','37','59','40','47','87');
prodotti['26'] = new Array('10','38','52','C6','D3','D8','G0','G3');
prodotti['22'] = new Array('65','D3');
prodotti['51'] = new Array('01','D3','D8','EX','H7','I6');
prodotti['90'] = new Array('01');
prodotti['28'] = new Array('12','38','D3','F8','G8');
prodotti['32'] = new Array('01','D8','EX','H4','H7','I6','L0');
prodotti['25'] = new Array('02','08','09','34','B4');
prodotti['31'] = new Array('10','36','38','47','52','D3','EX','H7');
prodotti['38'] = new Array('02','08','09','23','34','43','44','45','88','91','B4');
prodotti['33'] = new Array('97','D3');
prodotti['03'] = new Array('A6','D3','D8');
prodotti['43'] = new Array('88');
prodotti['18'] = new Array('02','09','38','52','D7','H2');
prodotti['35'] = new Array('01');
prodotti['82'] = new Array('H8');
prodotti['01'] = new Array('23','88','A9','B3','D3','D9','FR','L1');
prodotti['81'] = new Array('36','71');
prodotti['39'] = new Array('10','52');
prodotti['09'] = new Array('B6','D8');
prodotti['86'] = new Array('38','D3','FR','TX');
prodotti['60'] = new Array('38','47','D7');
prodotti['41'] = new Array('02','38','58','59','62','CD','EB','TX');
prodotti['11'] = new Array('38','66','71','88','B6','D3');

function limita_c(pp) {
  var ss = pp.form.c;
  var valore = pp.options[pp.selectedIndex].value;
  for(var i=ss.length-1; i>0; i--) {
    var tt = ss.options[i].value;
    var presente = false;
    for(var j=0; j<marche[valore].length; j++) {
      if(marche[valore][j] == tt) {
        presente = true;
        break;
      }
    }
    if(!presente) ss.options[i] = null;
	}
}

function limita_p(cc) {
  var ss2 = cc.form.p;
  var valore2 = cc.options[cc.selectedIndex].value;
  for(var i2=ss2.length-1; i2>0; i2--) {
    var tt2 = ss2.options[i2].value;
    var presente2 = false;
    for(var j2=0; j2<prodotti[valore2].length; j2++) {
      if(prodotti[valore2][j2] == tt2) {
        presente2 = true;
        break;
      }
    }
    if(!presente2) ss2.options[i2] = null;
  }
}
</script>
La limitazione di questo script è che le selezioni vengono solo eliminate, mentre non c'è un modo per riaggiungerle se si cambia selezione!
 
Ultima modifica:

Discussioni simili