Pagina 3 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 38

Discussione: Select interdipendenti

  1. #21
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Grazie, adesso lo provo poi ti dico

  2. #22
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Bene, ho creato senza troppi problemi gli array e ho caricato la pagina sul server così che si possa vedere: http://www.computerline.it/ghost/eco...dipendenti.asp

    Mi da un errore
    "Errore: marche[txt] has no properties
    File sorgente: http://localhost/computerline/ecom/T...dipendenti.asp
    Riga: 142"
    alla righa
    codice:
    function limita_c(pp) {
      var ss = pp.form.c;
      var txt = pp.options[pp.selectedIndex].text;
      for(var i=ss.length-1; i>=0; i--) {
        var tt = ss.options[i].text;
        var presente = false;
        for(var j=0; j<marche[txt].length; j++) {
          if(marche[txt][j] == tt) {
            presente = true;
            break;
          }
        }
        if(!presente) ss.options[i] = null;
      }
    }

  3. #23
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    up

  4. #24
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Meraviglioso, ci sono quasi!! Ho cambiato il sistema, invece che prendere in considerazione il testo, uso il valore dell'option che è più sicuro. Succede però a volte che facendo una selezione l'altro select si svuoti completamente, e non è possibile perchè almeno un produttore per categoria e viceversa ci deve essere!
    codice:
    <script type="text/javascript">
    var marche = new Array();
    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');
    marche['23'] = new Array('38','01');
    marche['D3'] = new Array('11','16','22','26','28','31','33','34','42','40','37','36','49','51','57','74','08','86','84','83','03','01');
    marche['D9'] = new Array('01');
    marche['02'] = new Array('13','18','19','25','34','41','38','83');
    marche['IA'] = new Array('77');
    marche['52'] = new Array('18','26','30','31','42','39','49','57','73','08');
    marche['59'] = new Array('41');
    marche['24'] = new Array('29');
    marche['62'] = new Array('44','41');
    marche['H2'] = new Array('18','02');
    marche['45'] = new Array('13','38');
    marche['B6'] = new Array('11','09');
    marche['10'] = new Array('26','31','40','39','08','07');
    marche['G8'] = new Array('28','42');
    marche['C2'] = new Array('17');
    marche['B3'] = new Array('01');
    marche['28'] = new Array('17');
    marche['64'] = new Array('37');
    marche['26'] = new Array('17','73','08','07');
    marche['D8'] = new Array('17','26','32','51','59','80','09','08','07','03','02');
    marche['44'] = new Array('38');
    marche['D7'] = new Array('13','18','60');
    marche['B9'] = new Array('34');
    marche['36'] = new Array('12','31','47','77','79','81');
    marche['65'] = new Array('22');
    marche['66'] = new Array('11');
    marche['01'] = new Array('32','35','36','51','07','90');
    marche['88'] = new Array('11','12','13','43','38','79','01');
    marche['A9'] = new Array('01');
    marche['38'] = new Array('12','18','26','28','31','41','40','60','74','79','11','84','83','86');
    marche['B2'] = new Array('05');
    marche['L0'] = new Array('32');
    marche['32'] = new Array('17');
    marche['43'] = new Array('38');
    marche['A6'] = new Array('03');
    marche['34'] = new Array('25','38');
    marche['H7'] = new Array('30','31','32','49','51','59','07','80','89');
    marche['H8'] = new Array('82');
    marche['12'] = new Array('28','83');
    marche['TX'] = new Array('41','49','86');
    marche['69'] = new Array('36');
    marche['58'] = new Array('41');
    marche['71'] = new Array('11','81','84');
    marche['L1'] = new Array('01');
    marche['91'] = new Array('38');
    marche['54'] = new Array('16','36','87');
    
    var prodotti = new Array();
    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');
    prodotti['02'] = new Array('D8','H2');
    prodotti['84'] = new Array('38','71','D3','EX','G0');
    prodotti['80'] = new Array('D8','H4','H7','I6');
    prodotti['36'] = new Array('01','54','69','97','C6','D3');
    prodotti['12'] = new Array('11','36','38','88');
    prodotti['08'] = new Array('10','26','52','D3','D8','EX','F3','G0');
    prodotti['16'] = new Array('13','54','C6','D3');
    prodotti['83'] = new Array('02','11','12','38','55','D3');
    prodotti['73'] = new Array('26','52');
    prodotti['34'] = new Array('02','03','B9','D3','FX','G3');
    prodotti['74'] = new Array('38','D3','FR');
    prodotti['04'] = new Array('55','97','B0','F1','FX','G3');
    prodotti['42'] = new Array('52','D3','F8','G8');
    prodotti['29'] = new Array('24','27');
    prodotti['49'] = new Array('52','D3','EX','H7','I6','TX');
    prodotti['89'] = new Array('H4','H7');
    prodotti['19'] = new Array('02','08','09');
    prodotti['06'] = new Array('47');
    prodotti['57'] = new Array('52','D3');
    prodotti['05'] = new Array('47','55','97','B2','H4','SA');
    prodotti['17'] = new Array('26','28','32','AH','C2','D8');
    prodotti['13'] = new Array('02','08','45','88','D7');
    prodotti['30'] = new Array('52','F8','H4','H7');
    prodotti['07'] = new Array('01','10','26','D8','EX','F3','H7');
    prodotti['77'] = new Array('36','55','IA');
    prodotti['79'] = new Array('11','36','38','88');
    prodotti['44'] = new Array('62','EB');
    prodotti['37'] = new Array('64','D3');
    prodotti['59'] = new Array('AC','D8','EX','H4','H7');
    prodotti['40'] = new Array('10','38','47','D3','G0');
    prodotti['47'] = new Array('36');
    prodotti['87'] = new Array('54');
    
    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>
    <form name="query" action="">
    c: <select name="p" class="select_10" id="p" style="width:180px;text-transform:capitalize;" onchange="limita_c(this);">
    <option selected="selected" value="-1" style="text-align:center;">- Produttore -</option>
    <option value="97"> altri produttori</option>
    <option value="F8">1idea</option>
    <option value="G0">1pc</option>
    <option value="13">3com</option>
    
    <option value="F3">a4tech</option>
    <option value="11">acer</option>
    <option value="AH">ahead</option>
    <option value="27">amd</option>
    <option value="B4">armor</option>
    <option value="AC">artic cooling</option>
    <option value="55">asustek</option>
    <option value="SA">ati/sapphire</option>
    <option value="F1">biostar</option>
    
    <option value="09">canon</option>
    <option value="CD">cdv</option>
    <option value="03">compaq</option>
    <option value="H4">cooler master</option>
    <option value="47">creative</option>
    <option value="C6">dlink</option>
    <option value="EX">eliox</option>
    <option value="I6">enermax</option>
    <option value="G3">epox</option>
    
    <option value="08">epson</option>
    <option value="EB">exabyte</option>
    <option value="B0">fast</option>
    <option value="FX">foxconn</option>
    <option value="FR">freecom</option>
    <option value="23">fujitsu</option>
    <option value="D3">hamlet</option>
    <option value="D9">hitachi</option>
    <option value="02">hp</option>
    
    <option value="IA">i, mate</option>
    <option value="52">imagik</option>
    <option value="59">imation</option>
    <option value="24">intel</option>
    <option value="62">iomega</option>
    <option value="H2">kingston</option>
    <option value="45">lexmark</option>
    <option value="B6">lg electronics</option>
    <option value="10">logitech</option>
    
    <option value="G8">lonsdale</option>
    <option value="C2">macromedia</option>
    <option value="B3">maxtor</option>
    <option value="28">mcafee</option>
    <option value="64">mge</option>
    <option value="26">microsoft</option>
    <option value="D8">oem</option>
    <option value="44">oki</option>
    <option value="D7">olympus</option>
    
    <option value="B9">palm</option>
    <option value="36">philips</option>
    <option value="65">pinnacle</option>
    <option value="66">pioneer</option>
    <option value="01">rem</option>
    <option value="88">samsung</option>
    <option value="A9">seagate</option>
    <option value="38">sony</option>
    <option value="B2">sparkle</option>
    
    <option value="L0">supermicro</option>
    <option value="32">symantec</option>
    <option value="43">tally</option>
    <option value="A6">teac</option>
    <option value="34">tektronix</option>
    <option value="H7">thermaltake</option>
    <option value="H8">tomtom, gps</option>
    <option value="12">toshiba</option>
    <option value="TX">tx</option>
    
    <option value="69">us, robotics</option>
    <option value="58">verbatim</option>
    <option value="71">waitec</option>
    <option value="L1">western digital</option>
    <option value="91">xerox</option>
    <option value="54">zyxel</option>
    </select>
    
    
    
    c2: <select name="c" style="width:180px; text-transform:capitalize;" class="select_10" id="c" onchange="limita_p(this);">
    <option selected="selected" value="0" style="text-align:center;">- Categoria Prodotti -</option>
    
    <option value="26">accessori</option>
    <option value="22">acquisizione video</option>
    <option value="51">alimentatori</option>
    <option value="90">alimentatori server</option>
    <option value="28">borse per computer</option>
    <option value="32">cabinet</option>
    <option value="25">carta, lucidi, etich, buste</option>
    <option value="31">casse, cuffie, microfoni</option>
    <option value="38">consumabili</option>
    
    <option value="33">controller</option>
    <option value="03">drive floppy</option>
    <option value="43">fax, fotocopiatori</option>
    <option value="18">fotografia</option>
    <option value="35">garanzie rem</option>
    <option value="82">gps</option>
    <option value="01">hard disk</option>
    <option value="81">home multimedia</option>
    <option value="39">joystick, joypad, volanti</option>
    
    <option value="09">lettori cd, rom e dvd</option>
    <option value="86">lettori dvd, divx, mp3</option>
    <option value="60">lettori mp3</option>
    <option value="41">magnetico</option>
    <option value="11">masterizzatori</option>
    <option value="02">memorie</option>
    <option value="84">memorie flash</option>
    <option value="80">modding</option>
    <option value="36">modem</option>
    
    <option value="12">monitor</option>
    <option value="08">mouse</option>
    <option value="16">networking</option>
    <option value="83">notebook</option>
    <option value="73">parti di ricambio</option>
    <option value="34">pc</option>
    <option value="74">pen drive</option>
    <option value="04">piastre madri</option>
    <option value="42">porta cd, fd, access. pc</option>
    
    <option value="29">processori</option>
    <option value="49">rack estraibili, box ext</option>
    <option value="89">raffr. a liquido</option>
    <option value="19">scanner</option>
    <option value="06">schede audio</option>
    <option value="57">schede varie</option>
    <option value="05">schede video</option>
    <option value="17">software</option>
    <option value="13">stampanti</option>
    
    <option value="30">tappetini e access. mouse</option>
    <option value="07">tastiere</option>
    <option value="77">telefoni</option>
    <option value="79">tv</option>
    <option value="44">unità di backup</option>
    <option value="37">ups</option>
    <option value="59">ventole</option>
    <option value="40">videocamere, webcam</option>
    <option value="47">videoproiettori, lavagne</option>
    
    <option value="87">voip solutions</option>
    </select>
    <input type="submit" name="Submit" value="Invia">
    <input type="reset" name="Submit" value="Ripristina">
    </form>

  5. #25
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Oh, non tutti insieme

  6. #26
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il fine settimana non mi collego al forum ...

    Va bene usare il .value anziche` il .text. E` piu` complesso generare le matrici (dal punto di vista "umano"), ma se lo fai in automatico la cosa non ha rilevanza.


    Nel mio script avevo dato per scontato che ci fossero sempre degli oggetti dentro le matrici.
    Invece se marche[valore] e` vuota, non e` una matrice, per cui non si puo` applicare la proprieta` .length .

    Se il caso, occorre prima testare se la matrice esiste.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #27
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Non dovrebbe essere possibile, per ogni Produttore c'è sempre almeno una categoria, e per ogni Categoria c'è sempre almeno un produttore!

    Poi si riesce ad aggiungere un'opzione indipendente dalle altre, che venga sempre visualizzata e non abbia valore? Tipo "- Seleziona il Produttore -"...

  8. #28
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da Grinder
    Non dovrebbe essere possibile, per ogni Produttore c'è sempre almeno una categoria, e per ogni Categoria c'è sempre almeno un produttore!
    Ma allora l'errore che ti dava era dovuto ad errore di sintassi nello scrivere il nomi?

    Poi si riesce ad aggiungere un'opzione indipendente dalle altre, che venga sempre visualizzata e non abbia valore? Tipo "- Seleziona il Produttore -"...
    Se la metti sempre per prima, ed escludi lo 0 nel loop risolvi:
    for(var i=ss.length-1; i>0; i--)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #29
    Utente di HTML.it L'avatar di Grinder
    Registrato dal
    Mar 2003
    Messaggi
    1,374
    Non da errore, solo si svuota di volta in volta senza tornare mai al punto di partenza, così dopo un pò di selezioni alla fine manca un pezzo...per esempio se c'è una sola selezione possibile (e tra gli array ho controllato e ci sono tutti), questa non viene mostrata.

  10. #30
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da Grinder
    Non da errore, solo si svuota di volta in volta senza tornare mai al punto di partenza, così dopo un pò di selezioni alla fine manca un pezzo...per esempio se c'è una sola selezione possibile (e tra gli array ho controllato e ci sono tutti), questa non viene mostrata.
    Si`, di questo ne ero conscio.
    Quello script toglie solo i campi che non sono significativi per l'altra selezione, ma non ne aggiunge.
    Per aggiungere campi, devi usare le solite funzioni di aggiornamento delle select. In pratica ti conviene svuotare la select, poi riempirla con cio` che ti serve.

    In pratica devi trattare ambedue le select ciascuna come dipendente dall'altra, e rigenerarla.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.