Back to top

Autore Topic: ripetizioni voci select  (Letto 1424 volte)

Offline donato.chpp

  • Esploratore
  • **
  • Post: 139
    • Mostra profilo
ripetizioni voci select
« il: 11 Giu 2009, 00:55:51 »
come ho già scritto in un altro post sto creando due select dinamiche per un mio componente e vorrei che dopo aver effettuato la scelta nella prima select la seconda nella seconda ci siano solo le "sottovoci relative alla prima", cioè se ho:
articolo    dimensione
uno         x
uno         y
due         x
tre         z
tre         x

una volta effettuata la prima scelta, ad esempio l'articolo 'uno', nella seconda select mi dia solo x e y cioè le dimensioni relative al primo articolo.

questo grazie a diversi aiuti che mi avete dato sono riuscito a farlo con js, il mio problema ora è che le dimensioni della seconda select si ripetono ogno volta che viene fatta la scelta ad esempio se scelgo due volte l'articolo 'due', nella seconda select mi da due volte la dimensione x, invece non si dovrebbe ripetere. Riporto il codice js:

function scelta_mia() {
num_option = document.getElementById('dimensione').options.length;
      indice_selezionato = document.getElementById('articolo').selectedIndex;
      if(indice_selezionato >= 0) {
         value_selezionato = document.getElementById('articolo').options[indice_selezionato].value;
         testo_selezionato = document.getElementById('articolo').options[indice_selezionato].innerHTML;
         duplicato = 0;
         for(a = 0;a < num_option; a++) {
            if(document.getElementById('dimensione').options[a].value == value_selezionato) {
               duplicato = 1;
            }
         } if(duplicato == 0) {
            for(i = 0; i < required_element.length; i++) {
               if(required_element(i)(1) == value_selezionato) {
                  document.getElementById('dimensione').options[num_option] =
                     new Option('',escape(required_element(i)(2)),false,false);
                  document.getElementById('dimensione').options[num_option].innerHTML = required_element(i)(2);
               }
            }
         }
      }
   }


con required_element che è un array doppio preso da php in cui c'è articolo e dimensione.

So che non è il max come funzione, però mi sono avvicinato da poco a js.

chiunque possa aiutarmi gliene sarei davvero grato   ;D
       
« Ultima modifica: 11 Giu 2009, 00:59:01 da donato.chpp »
quello che gli occhi vedono e le orecchie sentono la mente crede!!!!

teakor

  • Visitatore
Re:ripetizioni voci select
« Risposta #1 il: 11 Giu 2009, 08:21:58 »
In poche parole tu la prima volta selezioni nella select1 selezioni l'opzione 2, e ti crea la select2 riferita a quell'opzione. Sempre nella stessa pagina, riselezioni nella select1 l'opzione 2 e ti riricarica i dati riferiti a questa opzione? Giusto?

mmmh non so non mi è mai capitato sinceramente. L'unica soluzione potrebbe essere mettere un if, che se l'onChange viene rieseguito sempre sulla sulla stessa opzione della select1, salta tutto il processo di creazione della select2

Offline donato.chpp

  • Esploratore
  • **
  • Post: 139
    • Mostra profilo
Re:ripetizioni voci select
« Risposta #2 il: 11 Giu 2009, 09:04:47 »
no, non proprio cosi, ad esempio io ho una tabella che mi carico in array, con articolo e dimensione, come ho scritto sopra. nella prima select seleziono l'articolo, la seconda si popola a seconda dell'articolo.
se seleziono l'articolo 'uno' la seconda select si popola con x e y, se poi seleziono l'articolo 'tre' la seconda select aggiunge z, ma non va bene perchè la seconda select in questo modo avrebbe x, y, z. invece dovrebbe avere solo x e z...  ???
quello che gli occhi vedono e le orecchie sentono la mente crede!!!!

teakor

  • Visitatore
Re:ripetizioni voci select
« Risposta #3 il: 11 Giu 2009, 09:16:05 »
Ok... capito...

Questo accade perchè ogni volta tu vai a inserire una nuova opzione; in pratica fai un aggiunta di opzioni.

Per risolvere il problema, devi, ogni volta che selezioni un opzione della prima select, prima di andare a caricari i dati, resettarla e quindi andare ad inserire le nuove opzioni.

Offline donato.chpp

  • Esploratore
  • **
  • Post: 139
    • Mostra profilo
Re:ripetizioni voci select
« Risposta #4 il: 11 Giu 2009, 10:18:44 »
c'è un comando o funzione particolare per farlo o devo crearmi io la funzione??? grazie teakor
quello che gli occhi vedono e le orecchie sentono la mente crede!!!!

teakor

  • Visitatore
Re:ripetizioni voci select
« Risposta #5 il: 11 Giu 2009, 10:23:17 »
sinceramente non lo so... prova a cercare su google.

Offline donato.chpp

  • Esploratore
  • **
  • Post: 139
    • Mostra profilo
Re:ripetizioni voci select
« Risposta #6 il: 11 Giu 2009, 10:29:39 »
ok, grazie mille teakor
quello che gli occhi vedono e le orecchie sentono la mente crede!!!!

 



Web Design Bolzano Kreatif