Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82

    select che popola select

    All onchange di una select devo popolare un'altra select inquesto modo.

    Nella funzione javascript ho una stringa di questo tipo:

    stringa = 1-1|1-3|2-3| (presa da un hidden della form)

    Con lo split (usando | come delimitatore) ottengo un'array.

    Ora viene il bello perchè dovrei ciclare l'array in modo che dove il primo carattere di questo (per array[0] sarà 1) è uguale al value passato dalla prima select, la seconda select avrà come option il 3° carattere (per array[0] sempre 1):

    Praticamente nella prima select ho options 1,1,2 al click del primo l'option sarà 1, del secondo sarà 3 e del terzo sarà 3.

    Chi mi aiuta?

    Sono un novellino

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ho capito bene, ma forse ti basta questo consiglio.

    Dopo il primo split ti trovi con un vettore, ciascun elemento del quale contiene:
    N-N (numero, segno -, numero).
    Devi semplicemente rifare lo split separando secondo il - e trasformare le stringhe numeriche in numeri. Esempio:
    codice:
      var uno = qualcosa.split(/\|/);
      for (var i=0; i<uno.length; i++) { // loop su tutti i pezzi
        var due = uno[i].split(/\-/);
        var alfa = parseInt(due[0],10);
        var beta = parseInt(due[1],10);
        // qui utlizzi alfa e beta per fare quello che vuoi
      }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    scusami ho tralasciato un particolare non da poco:

    la stringa 1-1|1-3|2-3| è dinamica quindi potrbbe essere anche più lunga.Quindi il tutto deve essere dinamico perchè il numero dei vettori è variabile

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Questo lo avevo intuito, e non da` problemi.

    Ma dato che non ho capito esattamente quello che devi fare con i numeri estratti, non so come aiutarti.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    quando clicco su un option della prima select passo il value alla funzione.se il value è uguale alla prima cifra del vettore (quella prima del -) devo riempire l'options di un'altra select con il valore della seconda cifra del vettore (quella dopo del -).

    Per farti capire, le options della prima select sono 1,1,2 e corrispondono alle prime cifre dei vettori(quelli prima del -).Al click di ognuno di questi l'altra select avrà l'options corrispondente (ossia il terzo valore del vettore,quello dopo del -)

    Quindi 1-1, 1-3, 2-3

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Mi manca ancora un passaggio.
    E poi non ho capito se ti serve ancora un aiuto o se il consiglio che ti ho dato ti e` sufficiente (guarda anche la voce "select dipendenti" tra le "discussioni utili").

    Se vuoi ancora aiuto, dovresti fare un esempio di questo tipo:
    La prima select e` fatta cosi`:
    <select ...>
    <option value="1-1|1-3|2-3">qualcosa</option>
    <option value="????">qualcosaltro</option>
    ...
    </select>

    Se seleziono la prima opzione di tale select vorrei che la seconda diventasse ....

    Naturalmente se poi cambio la selezione della prima, la seconda viene resettata e modificata ...
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    Scusami si stato già preziosissimo.

    Solo per farmi capire:

    <form name="mioform">
    <select>
    <option value="1">1</option>
    <option value="1">1</option>
    <option value="2">2</option>
    </select>

    <select>
    <option value="?">?</option>
    </select>
    </form>

    Secondo la stringa 1-1|1-3|2-3|

    all'on change del primo select se è selezionato il primo option ,l'option del secondo select sarà sarà 1, se è selezionato il secondo, sarà 3, se è selezionato il terzo, sarà 3

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    Ho fatto una cosa del genere ma non va:

    codice:
    <script language="JavaScript">
    //passo alla funzione il valore dell'option selezionato
    function getassicur(selezionata){
      //recupero la stringa 1-1|1-3|2-3| nascosta in un hidden
      qualcosa = document.preventivo.ass.value
      //suddivido
      var uno = qualcosa.split(/\|/);
      //faccio il ciclo
      for (var i=0; i<uno.length; i++){  // loop su tutti i pezzi
    	//se il primo carattere di ogni vettore è uguale selezionata
            if(uno[i].substr(1,1) == selezionata) {
    		//riempio l'option della select assicurazioni
                    document.preventivo.assicurazioni.options = uno[i].substr(3,1)
    		document.preventivo.assicurazioni.options.value = uno[i].substr(3,1)
    	}
    	
      }
    }

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma perche` la stringa deve essere nascosta in un hidden?

    Perche` non puo` essere nel value del primo select? Oppure in una matrice JS? (ambedue le cose le puoi realizzare dinamicamente lato server).

    E poi non si puo` popolare una select come hai fatto tu. Rivediti i numerosi thread in proposito.

    E ancora:
    se la stringa e` quella che dicevi, .substr(1,1) e` il segno -
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    La stringa l'ho riempita in un hidden con l'asp visto che è il risultato di un interrogazione lato server.

    Come posso generare una matrice js lato server?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.