Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema lettura array JS.

    Ho il seguente codice:

    Codice PHP:
    <html>
    <
    head>
    <
    script language="javascript">
    <!--
      var 
    arrAree = new Array();
      
          
    arrAree[0] = new Array;
          
    arrAree[0][1]  = "Funzionale";
        
    arrAree[0][1][1] = "Difesa e Spazio";
            
    arrAree[0][1][1][1] = "Algoritmi (calcolo della copertura radar ...";
            
    arrAree[0][1][1][2] = "Applicazioni GIS";
            
    arrAree[0][1][1][3] = "Applicazioni real-time";
            
    arrAree[0][1][1][4] = "Sistemi di comando e controllo";
            
    arrAree[0][1][1][5] = "Sistemi di comunicazione (data link)";
            
    arrAree[0][1][1][6] = "Sistemi di simulazione e training";
            
    arrAree[0][1][1][7] = "Sistemi di supporto al comando";
            
    arrAree[0][1][1][8] = "Sistemi di telerilevamento";
            
    arrAree[0][1][1][9] = "Sistemi per l'intelligence (Data Fusion)";  

          
    arrAree[1] = new Array;
          
    arrAree[1][1]  = "Gestionale";
        
    arrAree[1][1][1]  = "Gestionale-sub";
            
    arrAree[1][1][1][1] = "Algoritmi (calcolo della copertura radar ...";
            
    arrAree[1][1][1][2] = "Applicazioni GIS";
            
    arrAree[1][1][1][3] = "Applicazioni real-time";
            
    arrAree[1][1][1][4] = "Sistemi di comando e controllo";
            
    arrAree[1][1][1][5] = "Sistemi di comunicazione (data link)";
            
    arrAree[1][1][1][6] = "Sistemi di simulazione e training";
            
    arrAree[1][1][1][7] = "Sistemi di supporto al comando";
            
    arrAree[1][1][1][8] = "Sistemi di telerilevamento";
            
    arrAree[1][1][1][9] = "Sistemi per l'intelligence (Data Fusion)";      
              
          
    arrAree[2] = new Array;
          
    arrAree[2][1]  = "Lingue estere";
        
    arrAree[2][1][1]  = "Lingue estere-sub";
            
    arrAree[2][1][1][1] = "Algoritmi (calcolo della copertura radar ...";
            
    arrAree[2][1][1][2] = "Applicazioni GIS";
            
    arrAree[2][1][1][3] = "Applicazioni real-time";
            
    arrAree[2][1][1][4] = "Sistemi di comando e controllo";
            
    arrAree[2][1][1][5] = "Sistemi di comunicazione (data link)";
            
    arrAree[2][1][1][6] = "Sistemi di simulazione e training";
            
    arrAree[2][1][1][7] = "Sistemi di supporto al comando";
            
    arrAree[2][1][1][8] = "Sistemi di telerilevamento";
            
    arrAree[2][1][1][9] = "Sistemi per l'intelligence (Data Fusion)";          
              
          
    arrAree[3] = new Array;
          
    arrAree[3][1]  = "Prodotti";
        
    arrAree[3][1][1]  = "Prodotti-sub";
            
    arrAree[3][1][1][1] = "Algoritmi (calcolo della copertura radar ...";
            
    arrAree[3][1][1][2] = "Applicazioni GIS";
            
    arrAree[3][1][1][3] = "Applicazioni real-time";
            
    arrAree[3][1][1][4] = "Sistemi di comando e controllo";
            
    arrAree[3][1][1][5] = "Sistemi di comunicazione (data link)";
            
    arrAree[3][1][1][6] = "Sistemi di simulazione e training";
            
    arrAree[3][1][1][7] = "Sistemi di supporto al comando";
            
    arrAree[3][1][1][8] = "Sistemi di telerilevamento";
            
    arrAree[3][1][1][9] = "Sistemi per l'intelligence (Data Fusion)";              
          
          
    arrAree[4] = new Array;
          
    arrAree[4][1]  = "Tecnico Applicativo";
        
    arrAree[4][1][1]  = "Tecnico Applicativo-sub";
            
    arrAree[4][1][1][1] = "Algoritmi (calcolo della copertura radar ...";
            
    arrAree[4][1][1][2] = "Applicazioni GIS";
            
    arrAree[4][1][1][3] = "Applicazioni real-time";
            
    arrAree[4][1][1][4] = "Sistemi di comando e controllo";
            
    arrAree[4][1][1][5] = "Sistemi di comunicazione (data link)";
            
    arrAree[4][1][1][6] = "Sistemi di simulazione e training";
            
    arrAree[4][1][1][7] = "Sistemi di supporto al comando";
            
    arrAree[4][1][1][8] = "Sistemi di telerilevamento";
            
    arrAree[4][1][1][9] = "Sistemi per l'intelligence (Data Fusion)";                  
          
          
    arrAree[5] = new Array;
          
    arrAree[5][1]  = "Tecnico Sistemista";
        
    arrAree[5][1][1]  = "Tecnico Sistemista-sub";    
            
    arrAree[5][1][1][1] = "Algoritmi (calcolo della copertura radar ...";
            
    arrAree[5][1][1][2] = "Applicazioni GIS";
            
    arrAree[5][1][1][3] = "Applicazioni real-time";
            
    arrAree[5][1][1][4] = "Sistemi di comando e controllo";
            
    arrAree[5][1][1][5] = "Sistemi di comunicazione (data link)";
            
    arrAree[5][1][1][6] = "Sistemi di simulazione e training";
            
    arrAree[5][1][1][7] = "Sistemi di supporto al comando";
            
    arrAree[5][1][1][8] = "Sistemi di telerilevamento";
            
    arrAree[5][1][1][9] = "Sistemi per l'intelligence (Data Fusion)";                      
    -->
    </script>
    </head>
    <body>
    <script language="javascript">    
        for (var i=0; i<arrAree.length; i++) {
            campoMacroareaWrite = arrAree[i][1];
            alert(campoMacroareaWrite);
      }
    </script>
    </body>
    </Html> 
    Nel ciclo for con l'alert, vorrei l'eggere l'elemento del primo ramo annidato dello stesso array (per intenderci le voci "Funzionale", "Gestionale", ecc...), tuttavia dopo la lettura del primo elemento, appunto "Funzionale", non mi restituisce gli altri valori che mi aspetto e va in errore.
    Cosa sbaglio?

    Grazie anticipatamente per l'aiuto.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    a occhio direi che l'interprete js se la prende a male quando incontra questo assegnamento
    arrAree[0][1][1] = "Difesa e Spazio";

    poichè prima di questa istruzione dovresti specificare
    arrAree[0][1] = [];

    stessa cosa anche qui
    arrAree[0][1][1][1] = "Algoritmi (calcolo della copertura radar ...";

    prima devi specificare che l'elemento precedente è un array
    arrAree[0][1][1] = [];

    e in generale dovunque aumenti la profondità dell'array senza prima dichiarare come array l'elemento che vuoi estendere.

    in realtà l'deale sarebbe stata una struttura object literal del tipo

    codice:
    var aree = {
       'funzionale' : {
           'difesa spazio' : [
                'algoritmi',
                'applicazioni gis',
                ...
           ]
       },
    
       'gestionale' : {
    
       },
    
        ...
    
    }
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Il sistema che suggerisci tu mi stampa in alert il terzo livello ("Funzionale-sub", "Gestionale-sub", ecc...), io invece voglio stampare "Funzionale", "Gestionale", ecc...

    Il codice:

    codice:
    <html>
    <head>
    <script language="javascript">
    <!--
      var arrAree = new Array();
      
      	arrAree[0] = new Array;
      	arrAree[0][1]  = "Funzionale";
    	arrAree[0][1] = [];
    	arrAree[0][1][1] = "Funzionale-sub";
    		arrAree[0][1][1][1] = "Funzionale-sub-1";
    		arrAree[0][1][1][2] = "Funzionale-sub-2";
    		arrAree[0][1][1][3] = "Funzionale-sub-3";
    		arrAree[0][1][1][4] = "Funzionale-sub-4";
    		arrAree[0][1][1][5] = "Funzionale-sub-5";
    		arrAree[0][1][1][6] = "Funzionale-sub-6";
    		arrAree[0][1][1][7] = "Funzionale-sub-7";
    		arrAree[0][1][1][8] = "Funzionale-sub-8";
    		arrAree[0][1][1][9] = "Funzionale-sub-9";  
    
      	arrAree[1] = new Array;
      	arrAree[1][1]  = "Gestionale";
    	arrAree[1][1] = [];
    	arrAree[1][1][1]  = "Gestionale-sub";
    		arrAree[1][1][1][1] = "Gestionale-sub-1";
    		arrAree[1][1][1][2] = "Gestionale-sub-2";
    		arrAree[1][1][1][3] = "Gestionale-sub-3";
    		arrAree[1][1][1][4] = "Gestionale-sub-4";
    		arrAree[1][1][1][5] = "Gestionale-sub-5";
    		arrAree[1][1][1][6] = "Gestionale-sub-6";
    		arrAree[1][1][1][7] = "Gestionale-sub-7";
    		arrAree[1][1][1][8] = "Gestionale-sub-8";
    		arrAree[1][1][1][9] = "Gestionale-sub-9";  	
    	  	
      	arrAree[2] = new Array;
      	arrAree[2][1]  = "Lingue estere";
    	arrAree[2][1] = [];	
    	arrAree[2][1][1]  = "Lingue estere-sub";
    		arrAree[2][1][1][1] = "Lingue estere-sub-1";
    		arrAree[2][1][1][2] = "Lingue estere-sub-2";
    		arrAree[2][1][1][3] = "Lingue estere-sub-3";
    		arrAree[2][1][1][4] = "Lingue estere-sub-4";
    		arrAree[2][1][1][5] = "Lingue estere-sub-5";
    		arrAree[2][1][1][6] = "Lingue estere-sub-6";
    		arrAree[2][1][1][7] = "Lingue estere-sub-7";
    		arrAree[2][1][1][8] = "Lingue estere-sub-8";
    		arrAree[2][1][1][9] = "Lingue estere-sub-9";  		
    	  	
      	arrAree[3] = new Array;
      	arrAree[3][1] = "Prodotti";
    	arrAree[3][1] = [];
    	arrAree[3][1][1] = "Prodotti-sub";
    		arrAree[3][1][1][1] = "Prodotti-sub-1";
    		arrAree[3][1][1][2] = "Prodotti-sub-2";
    		arrAree[3][1][1][3] = "Prodotti-sub-3";
    		arrAree[3][1][1][4] = "Prodotti-sub-4";
    		arrAree[3][1][1][5] = "Prodotti-sub-5";
    		arrAree[3][1][1][6] = "Prodotti-sub-6";
    		arrAree[3][1][1][7] = "Prodotti-sub-7";
    		arrAree[3][1][1][8] = "Prodotti-sub-8";
    		arrAree[3][1][1][9] = "Prodotti-sub-9";  			
    	  
      	arrAree[4] = new Array;
      	arrAree[4][1]  = "Tecnico Applicativo";
    	arrAree[4][1] = [];
    	arrAree[4][1][1]  = "Tecnico Applicativo-sub";
    		arrAree[4][1][1][1] = "Tecnico Applicativo-sub-1";
    		arrAree[4][1][1][2] = "Tecnico Applicativo-sub-2";
    		arrAree[4][1][1][3] = "Tecnico Applicativo-sub-3";
    		arrAree[4][1][1][4] = "Tecnico Applicativo-sub-4";
    		arrAree[4][1][1][5] = "Tecnico Applicativo-sub-5";
    		arrAree[4][1][1][6] = "Tecnico Applicativo-sub-6";
    		arrAree[4][1][1][7] = "Tecnico Applicativo-sub-7";
    		arrAree[4][1][1][8] = "Tecnico Applicativo-sub-8";
    		arrAree[4][1][1][9] = "Tecnico Applicativo-sub-9";  				
    	  
      	arrAree[5] = new Array;
      	arrAree[5][1]  = "Tecnico Sistemista";
    	arrAree[5][1] = [];
    	arrAree[5][1][1]  = "Tecnico Sistemista-sub";	
    		arrAree[5][1][1][1] = "Tecnico Sistemista-sub-1";
    		arrAree[5][1][1][2] = "Tecnico Sistemista-sub-2";
    		arrAree[5][1][1][3] = "Tecnico Sistemista-sub-3";
    		arrAree[5][1][1][4] = "Tecnico Sistemista-sub-4";
    		arrAree[5][1][1][5] = "Tecnico Sistemista-sub-5";
    		arrAree[5][1][1][6] = "Tecnico Sistemista-sub-6";
    		arrAree[5][1][1][7] = "Tecnico Sistemista-sub-7";
    		arrAree[5][1][1][8] = "Tecnico Sistemista-sub-8";
    		arrAree[5][1][1][9] = "Tecnico Sistemista-sub-9";  					
    -->
    </script>
    </head>
    <body>
    <script language="javascript">	
    	for (var i=0; i<arrAree.length; i++) {
        	campoMacroareaWrite = arrAree[i][1];
    		alert(campoMacroareaWrite);
      }
    </script>
    </body>
    </Html>
    Tutto questo sto cercando di sistemarlo per la gestione di tre combo dinamiche.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    devi scorrere quell'oggetto in modo diverso

    ad esempio
    codice:
    		<script type = "text/javascript">
    			var aree = {
    				'funzionale' : {
    				   'difesa spazio' : [
    						'algoritmi',
    						'applicazioni gis'
    				   ]
    				},
    
    				'gestionale' : {
    
    				},
    
    				'prodotti' : {
    
    				}
    			};
    
    			for (area in aree) {
    				if (aree.hasOwnProperty(area)) {
    					alert(area);
    				}
    			}
    		</script>
    Completa con le restanti voci, facendo attenzione ad annidamenti e virgole
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Ti ringrazio, farò qualche prova...
    Eventualmente mi rifaccio vivo.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

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.