Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [js]Oggetti o array?

  1. #1

    [js]Oggetti o array?

    ciao a tutti,
    vorrei costruire tre select box dove nel primo ho l'insieme dei metodi, una volta scelto il metodo nel primo select, il secondo select si popola con gli argomenti correlati al metodo e fino qui nessun problema.
    Il problem è per il 3° select box che in base al al metodo e argomento scelto mi mostra solo le specifiche correlate.

    es:
    il metodo 1 ha questi argomenti e specifiche
    metodo1->Argomento1->Specifica1
    metodo1->Argomento1->Specifica2
    metodo1->Argomento2->Specifica3
    metodo1->Argomento2->Specifica4
    metodo1->Argomento2->Specifica5

    il metodo 2 ha questi argomenti e specifiche

    metodo2->Argomento3->Specifica6
    metodo2->Argomento4->Specifica7
    metodo2->Argomento4->Specifica8
    metodo2->Argomento4->Specifica9
    metodo2->Argomento5->Specifica10

    in js è possibile farlo?

    ehm..sono riuscito a farmi capire?

  2. #2
    nessuna idea o suggerimento su che metodo utilizzare?

  3. #3
    Utente di HTML.it L'avatar di ilgiovo
    Registrato dal
    Aug 2001
    Messaggi
    518
    se sei riuscito a farlo dal metodo all'argomento il terzo passo dovrebbe essere similare... qual è il problema? prova a postare il codice
    Cacca!

  4. #4
    questo è il codice

    codice:
    var Metodo = new Array();
    var Argomento = new Array();
    var Specifica = new Array();
    var Pagine = new Array();
    var obj = new Array();
    function NEWMET(Nome)
    	{
    	this.Nome = Nome; 
    	}
    function NEWARG(Nome)
    	{
    	this.Nome = Nome;	
    	}
    function NEWSPEC(Nome,Url)
    	{
    	this.Nome = Nome;
    	this.Url = Url;
    	}
    	
    function item(nm,na,ns)
    	{
    	//aggiungo il nome del metodo
    	this.Met = new Array();
    	this.Met[nm] = new NEWMET(Metodo[nm]);
    		
    		//definisco la collezione e aggiungo il nome
    		this.Met[nm].Arg = new Array();
    		this.Met[nm].Arg[na] = new NEWARG(Argomento[na]);
    	
    			//definisco la collezione e aggiungo il nome
    			this.Met[nm].Arg[na].Spec = new Array();	
    			this.Met[nm].Arg[na].Spec[ns] = new NEWSPEC(Specifica[ns],Pagine[ns]);
    	}
    
    //----------------------------------------- CADICE DA MODIFICARE ------------------------------------//
    /*
    per creare nuove tipologie di insiemi è necessario definirli come metodi/argomenti/specifiche
    aggiungendo sempre un numero progressivo alla matrice.
    */
    /*************************************
    				METODI
    *************************************/
    Metodo[0] = "Assistenza Tecnica";
    Metodo[1] = "Cambio";
    
    /*************************************
    				ARGOMENTI
    *************************************/
    Argomento[0] = "mobile Prepagato";
    Argomento[1] = "Opzione E-Care";
    Argomento[2] = "Argomento Cambio";
    
    /*************************************
    			SPECIFICHE E PAGINE
    *************************************/
    Specifica[0] = "Specifica1";
    	Pagine[0] = "Pag_Specifica1.htm";
    Specifica[1] = "Specifica2";
    	Pagine[1] = "Pag_Specifica2.htm";
    Specifica[2] = "Specifica3";
    	Pagine[2] = "Pag_Specifica3.htm";
    Specifica[3] = "Specifica4";
    	Pagine[3] = "Pag_Specifica4.htm";
    Specifica[4] = "Specifica5";
    	Pagine[4] = "Pag_Specifica5.htm";
    Specifica[5] = "Specifica6";
    	Pagine[5] = "Pag_Specifica6.htm";
    /************************************************************************************
    **************************** CREAZIONE DEGLI OGGETTI ********************************
    ************************************************************************************/
    obj[0] = new item(0,0,0);//Assistenza Tecnica->mobile Prepagato->Specifica1(Pag_Specifica1.htm)
    obj[1] = new item(0,0,1);//Assistenza Tecnica->mobile Prepagato->Specifica2(Pag_Specifica2.htm)
    obj[2] = new item(0,1,2);//Assistenza Tecnica->Opzione E-Care->Specifica3(Pag_Specifica3.htm)
    
    //----------------------------------------- FINE CODICE DA MODIFICARE ------------------------------------//
    //alert(obj[0].Arg[0].Spec[0].Nome + " => " + obj[0].Arg[0].Spec[0].Url);
    function PrintMetodi()
    	{
    	document.write("<select name='BoxMetodo' id='BoxMetodo' onChange='cambiaMetodo()'>");
    	document.write("<option value='null' selected>Seleziona</option>");
    	for(a=0;a<=(Metodo.length)-1;a++)
    		{document.write("<option value='" + a + "' selected>" + Metodo[a] + "</option>");}
    	document.write("</select>");
    	}
    function PrintArgomenti()
    	{
    	document.write("<select name='BoxArgomento' id='BoxArgomento' onChange='cambiaArgomento(this)'>");
    	document.write("<option value='null' selected>Seleziona</option>");
    	document.write("</select>");	
    	}
    function PrintSpecifica()
    	{
    	document.write("<select name='BoxSpecifica' id='BoxSpecifica' onChange='cambiaSpecifica(this)'>");
    	document.write("<option value='null' selected>Seleziona</option>");
    	document.write("</select>");	
    	}

    magari sono io che mi perdo in un bicchiede d'acqua...allora le funzioni Print stampano solo i select box..il mio problema è scorrere gli oggetti, in quanto mi và sempre in errore se ad esempio voglio trovare tutti gli argomenti del metodo 1 o tutti le specifiche dell'argomento x.

    Sto sbagliando logica?

  5. #5
    riuscite a darmi un piccolo aiuto ?

  6. #6
    quindi non si può fare!?io pensavo che visto che esistono diversi script per le alberature, un discorso di questo genere in js fosse possibile...la logica teoricamente è quella degli insiemi.


  7. #7
    risolto da solo usando logica di costruzione degli insiemi.

    ciao

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.