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

    Rilevare Variabile/Array Da Function a Body

    Ciao, mi trovo davanti a questo codice :
    codice:
    <script type="text/javascript">
     function NumValue(form)
       { .....Istruzioni.....
         Array = new Array ... 
         ..caricamento array...
       }
    </script>
    A questo punto vorrei trasferire se cosi possiamo dire, l'array nel body e stamparlo.
    Come faccio?
    ho provato ad usare questo codice :
    codice:
    <body>
    <script language="JavaScript">
    NumValue(form);
    </script>
    </body>
    ma non va... dove sbaglio?

  2. #2
    Ricambio se così possiamo dire la richiesta.
    Ho questo .js
    codice:
    <script type="text/javascript">
     
       function NumValue()
       {
       N = document.Valor.NumBin.value;
       Num01 = document.Valor.NumBin01.value;
       Num02 = document.Valor.NumBin02.value;
       
       // document.write ( N + "
    " + Num01 + "
    " + Num02 + "
    " );
       
       // ARRAY 01 <------------------------------>
       
       Array01 = new Array();
       for (var i=0;i<Num01.length;i++) 
       {
    		Array01[i]=parseInt(Num01.substr(i,1));
    	}
    	
        for ( i=0, k=0, y=N-1; i<=y; i++, y-- )
    	{
    		k = Array01[i];
    		Array01[i] = Array01[y];
    		Array01[y] = k;
    	}
    	
    	/* document.write ( "
    
    " ); */
    	
    	/* for ( i=0; i<N; i++ )
    	  {
    		document.write ( Array01[i] );
    	  } 
    	
    	document.write ( "
    
    " ); */
    	
    	// ARRAY 02 <------------------------------>
    	
    	Array02 = new Array();
       for (var i=0;i<Num02.length;i++) 
       {
    		Array02[i]=parseInt(Num02.substr(i,1));
    	}
    	
        for ( i=0, k=0, y=N-1; i<=y; i++, y-- )
    	{
    		k = Array02[i];
    		Array02[i] = Array02[y];
    		Array02[y] = k;
    	}
    	
    	/* for ( i=0; i<N; i++ )
    	  {
    		document.write ( Array02[i] );
    	  }
    	
    	document.write ( "
    
    " ); */
    	
    	// ARRAY 03 <------------------------------>
    	
    	Array03 = new Array();
    	
    	for ( i=0; i<N+1; i++ )
        {
           Array03[i] = 0;
        }
    	
    	/* for ( i=0; i<N; i++ )
    	  {
    		document.write ( Array03[i] );
    	  }
    	
    	document.write ( "
    
    " ); */
          
    	for ( j=0, i=0; i<N+1, j<N; i++, j++ )
          {
              Array03[i]= Array03[i] + Array01[j] + Array02[j];
              if ( Array03[i]==2)
              {
                   Array03[i]=0;
                   Array03[i+1]=1;
              }
              else if ( Array03[i]==3 )
              {
                   Array03[i]=1;
                   Array03[i+1]=1;
              }
              else { }
              
          }
    	  
    	/*  for ( i=N; i>=0; i-- )
    	  {
    		document.write ( Array03[i] );
    	  }
    	
    	document.write ( "
    
    " ); */
    	
    	 }
    	  
     </script>
    Questo script mi permette di caricare appunto l'Array03.
    Questo script è tra i head. Ora, voglio caricare nel body i valori nell'array 03 ed uso questo codice :

    codice:
    <script type="text/javascript">
     NumValue()
     { 
    	for ( i=N; i>=0; i-- )
    	  {
    		document.write ( Array03[i] );
    	  }
     }
     
     </script>
    Ora, questo funziona solo se nello script tra gli head c'è almeno un document.write, il quale mi apre una pagina bianca appunto. Tornando indietro con la freccia in alto del browers torno sulla pagina e vedo che l'array03 è stato appunto caricato nel body. Ma se non metto almeno un document.write e non mi apre la pagina bianca non mi carica l'arry03 in body.
    Spero mi possiate aiutare. Se è troppo incasinato e non capite ditemelo, farò in modo di spiegarmi meglio.
    Grazie ancora.

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    A dire la verità t'ho perso, comunque se vuoi stampare nel body un valore di array fai cosi:
    codice:
    <body>
    <div id="mostra_array"></div>
    </body>
    codice:
    <script type="text/javascript">
     NumValue()
     { 
    	for ( i=N; i>=0; i-- )
    	  {
    		document.getElementById('mostra_array').innerHTML= Array03[i];
    	  }
     }
     
     </script>
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Non mi funziona...
    Cmq provo a spiegarmi meglio.
    Il primo code che ho messo è quello che ho tra gli head.
    Il secondo è quello chè c'è tra il body per farmi stampare appunto l'Array03.

    Ora, quando carico la pagina, inserisco dei valori tramite form, i quali vengono inviati alla funzione del primo codice ( quello tra gli head ) , il quale mi carica alla fine l'Array03.

    Fatto questo però nel body, non mi stampa nulla.

    Invece, se nel primo code, oltre a fargli caricare l'Array03, ci metto anche solo un :
    codice:
    document.write ( "" );
    mi apre una pagina bianca e ritornando indietro alla pagina che ho creato mi compare il valore dell'array.

    Io vorrai che invece mi caricasse il valore dell'array senza dover far comparire quella pagina bianca.

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Persistono l'incomprensione, ti ricordo che document.write puoi usarlo solo al caricamento del documento, usarlo a documento caricato sovrascrive tutto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Ok.. eccoti il programma completo. Provatelo pure se vuoi, basta che salvi con il nome di : X00.html e lo provi.
    In sostanza inserisci il numero di bit e i 2 numeri binari e ti restituisce la somma.

    Come esempio puoi mettere :
    Nbit : 3
    Numero 1 : 111
    Numero 2 : 100
    Risultato che dovrebbe dare : 1011


    codice:
    <html>
     <head>
     
     <script type="text/javascript">
     
       function NumValue()
       {
       N = document.Valor.NumBin.value;
       Num01 = document.Valor.NumBin01.value;
       Num02 = document.Valor.NumBin02.value;
       
       // document.write ( N + "
    " + Num01 + "
    " + Num02 + "
    " );
       
       // ARRAY 01 <------------------------------>
       
       Array01 = new Array();
       for (var i=0;i<Num01.length;i++) 
       {
    		Array01[i]=parseInt(Num01.substr(i,1));
    	}
    	
        for ( i=0, k=0, y=N-1; i<=y; i++, y-- )
    	{
    		k = Array01[i];
    		Array01[i] = Array01[y];
    		Array01[y] = k;
    	}
    	
    	/* document.write ( "
    
    " ); */
    	
    	/* for ( i=0; i<N; i++ )
    	  {
    		document.write ( Array01[i] );
    	  } 
    	
    	document.write ( "
    
    " ); */
    	
    	// ARRAY 02 <------------------------------>
    	
    	Array02 = new Array();
       for (var i=0;i<Num02.length;i++) 
       {
    		Array02[i]=parseInt(Num02.substr(i,1));
    	}
    	
        for ( i=0, k=0, y=N-1; i<=y; i++, y-- )
    	{
    		k = Array02[i];
    		Array02[i] = Array02[y];
    		Array02[y] = k;
    	}
    	
    	/* for ( i=0; i<N; i++ )
    	  {
    		document.write ( Array02[i] );
    	  }
    	
    	document.write ( "
    
    " ); */
    	
    	// ARRAY 03 <------------------------------>
    	
    	Array03 = new Array();
    	
    	for ( i=0; i<N+1; i++ )
        {
           Array03[i] = 0;
        }
    	
    	/* for ( i=0; i<N; i++ )
    	  {
    		document.write ( Array03[i] );
    	  }
    	
    	document.write ( "
    
    " ); */
          
    	for ( j=0, i=0; i<N+1, j<N; i++, j++ )
          {
              Array03[i]= Array03[i] + Array01[j] + Array02[j];
              if ( Array03[i]==2)
              {
                   Array03[i]=0;
                   Array03[i+1]=1;
              }
              else if ( Array03[i]==3 )
              {
                   Array03[i]=1;
                   Array03[i+1]=1;
              }
              else { }
              
          }
    	  
    	  for ( i=N; i>=0; i-- )
    	  {
    		document.write ( Array03[i] ); 
    	  }
    	
    	document.write ( "
    
    " ); 
    	
    	 }
    	  
     </script>
    </head>
     
    <body>
    <div align="center">
    
    
    
    
    
    
    
    <form name="Valor"  method="post" action="X00.html">
    <label for="NBit">Inserisci Numero Bit</label><input type="text" name="NumBin" size="20">
    
    <label for="N01">Inserisci il Primo Numero Binario</label><input type="text" name="NumBin01" size="20">
    
    <label for="N02">Inserisci il Secondo Numero Binario</label><input type="text" name="NumBin02" size="20">
    
    
    <input type="submit" value="Calcola..." onClick="NumValue()">
    </form> 
    
    
    
    
    
    
    <script type="text/javascript">
     NumValue()
     { 
    	for ( i=N; i>=0; i-- )
    	  {
    		document.write ( Array03[i] );
    	  }
     } 
     
     
    </script>
    
    
    
    
    
    
    
    </div>
    </body>
    </html>
    Come puoi vedere ora il for ( quello di rosso ) nello script è abilitato ma se e se fai il procedimento ti apre una pagina con scritto ( se metti i valori detti prima ) 1011 e tornando indietro alla pagine precendenti ti mette 2 volete il risultato. Ma se metti il for tra /* */ non funziona piu. Come ti ho già detto io vorrei premere su Calcola... e in basso senza che mi si aprano altre pagine vorrei che uscisse il risultato...

    Grazie mille per la disponibilità.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Non so che dirti non capisco lo script e non ho voglia di studiarmelo, pertanto valgono le risposte precedenti in oltre cambia <input type="submit" value="Calcola..." onClick="NumValue()"> il submit con un button altrimenti l'onclick viene ignorato

    P.S. Prova mettere un link ad una pagina pubblica, simulando il tutto hai qualche possibilità in più.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    ok.. grazie lo stesso..

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.