Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854

    [JS] Creare una variabile dinamicamente tramite Ciclo For

    Salve a tutti,
    come posso creare una variabile con nome dinamico grazie ad un ciclo for?

    Avevo scritto:

    codice:
    for(i=0; i=pax; i++){
                var paxDetailSurname '' + i =  $("#ospiti_details_surname_"+i).val();
                var paxDetailName '' + i =     $("#ospiti_details_name_"+i).val();
            }
    ma da errore!

    Grazie.

  2. #2
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Ottengo un errore relativo al nome della variabile!

    Nel form ho dimenticato di scrivere i<=pax

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    puoi usare un array di oggetti:

    codice:
    ospiti = [];
    
    for(i=0; i<pax; i++){
      ospiti[i] = {};
                ospiti[i].paxDetailSurname =  $("#ospiti_details_surname_"+i).val();
                ospiti[i].paxDetailName =     $("#ospiti_details_name_"+i).val();
            }

  4. #4
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Ottimo consiglio!

    Successivamente devo trasferire l'array in una chiamata Ajax di tipo POST, non avrò problemi?

  5. #5
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Alla fine sto provando con un array bidimensionale, ma non va, mi da errore e non capisco il perchè!

    codice:
    ospiti = [];
    
            for(i=0; i<pax; i++){
                ospiti[i] = {};
                alert($("#ospiti_details_surname_"+i).val());
                ospiti[i].paxDetailSurname =  $("#ospiti_details_surname_"+i).val();
                alert($("#ospiti_details_name_"+i).val());
                ospiti[i].paxDetailName =     $("#ospiti_details_name_"+i).val();
            }
            
            console.log(ospiti[0].length); //stampa undefined
            console.log(ospiti[1].length); //stampa undefined
            
            for (x=0; x<ospiti[0].length; x++)
            {
                for (y=0; y<ospiti[1].length; y++)
                {
                    console.log(ospiti[x][y]);
                }
            }

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    ti stampa undefined perche non è un array bidimensionale ma un array di oggetti(o json array), perchè vuoi cambiare, la mia soluzione fa al caso tuo. Per inviare i dati con ajax puoi transformare l'array di oggetti in una stringa con il metodo JSON.stringify, per recuperarlo devi effettuare il parse con il linguaggio server che usi

  7. #7
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Mi serve scansionare l'array per vedere gli elementi che contiene, come dovrei fare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Se sai a priori quali proprietà contiene l'oggetto, basta fare cosi:

    codice:
    for (x=0; x<ospiti.length; x++)
            {
               
    ospiti[x].paxDetailSurname
    ecc...         
    }
    altrimenti, puoi ciclare anche le proprietà cosi:

    codice:
    for (x=0; x<ospiti.length; x++)
            {
               
              for(param in ospiti[x]){
                alert(ospiti[x][param]);
              }
    }

  9. #9
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Esatto, conosco già la struttura del mio array.

    Grazie!

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.