problema aggiornamento data

  • Creatore Discussione Creatore Discussione tony1
  • Data di inizio Data di inizio

tony1

Utente Attivo
8 Ago 2010
32
0
0
Sto realizzando un 'agenda in javascript.C'è una funzione che mi da problemi.La funzione è questa:
Codice:
unction mese_avanti(data){
 //aggiornare data ogni volta che si richiama la funzione  
  
 var mese = data.getMonth()+1;
 
 var anno = data.getFullYear();
 
 
 
 switch (mese) { //converte il numero in nome del mese
  case 0:
   mese = "gennaio";
   break;
  case 1:
   mese = "febbraio";
   break;
  case 2:
   mese = "marzo";
   break;
  case 3:
   mese = "aprile";
   break;
  case 4:
   mese = "maggio";
   break;
  case 5:
   mese = "giugno";
   break;
  case 6:
   mese = "luglio";
   break;
  case 7:
   mese = "agosto";
   break;
  case 8:
   mese = "settembre";
   break;
  case 9:
   mese = "ottobre";
   break;
  case 10:
   mese = "novembre";
   break;
  case 11:
   mese = "dicembre";
   break;
 }

  return  mese + " " + anno;
}
In pratica questa funzione viene richiamata ogni volta che clicco su un link del tipo >>.La funzione svolge il suo ruolo però lo fà una volta soltanto.Se riclicco nuovamente sul link non mi aggiorna il mese che voglio.L'output è così fatto: << mese anno >>.Finchè clicco una volta va bene,ma le volte successive no.Eppure la richiamo ogni volta.Per comodità vi posto il codice della pagina che dovrebbe andare avanti con i mesi:
Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<meta name="author" content="tonino" />

	<title>Untitled 1</title>
    <script language="javascript" src="agenda.js">
    <!--
    //-->
    </script>
</head>

<body>
<form action="successivo.html" method="get" name="successivo">
<a href="precedente.html">&lt;&lt;</a>
<script language="javascript">
//selezionare la data a video
var d1=new Date();
document.write(mese_avanti(d1));

</script>
<a href="successivo.html">&gt;&gt;</a><br />
<script language="javascript">
document.write(giorni_mese(d1));
</script>
</form>
</body>
</html>
Spero di essere stato chiaro.
 
ciao
rispondo anche se sono digiuno di js, ma in quanto più che un problema di js mi sembra un problema di logica

tu hai la variabile

var mese = data.getMonth()+1;

quando clicchi la primsa volta legge data.getMonth() (es marzo = 3) e ci somma 1 => 4

quando clicci la seconda volta
data.getMonth() legge ancora marzo per cui il risultato non cambia (se da come intuisco) data.getMonth() è simile alla date() di php
 
Mi spiego meglio.Per far funzionare l'agenda devo recuperare il valore della variabile javascript d1 che si trova in un file chiamato agenda.html.In un'altro file chiamato successivo.html devo recuperare la variabile d1 del file agenda.html.Così facendo dovrei recuperare la data stampata a video.Quando vado nel file successivo.html recupero il valore della data e l'aggiorno a quello successivo.Se è ottobre cliccando sul collegamento che ho fatto (>>)mi dovrebbe dare novembre e cosi via.Ho provato a fare così nel file successivo.html:

d2=document.getElementById('agenda').value

Però non funziona perchè sicuramente la sintassi è sbagliata.
 
Pardon.C'è un problema di base.Javascript non permette il passaggio di valori da un file a un'altro.Allora devo provare in un altro modo.Il file in questione è questo:
Codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<meta name="author" content="tonino" />

	<title>Untitled 1</title>
    <script language="javascript" src="agenda.js">
    <!--
    
    //-->
    
    </script>
</head>

<body>
<form method="get" name="agenda" action="agenda.html">
<a href="precedente.html">&lt;&lt;</a></a>
<script language="javascript">
var d1=new Date();

 document.write(tempo(d1));
 
 </script>
 <a href="agenda.html" onclick="document.write(mese_avanti(d1));" >&gt;&gt;</a><br />

 <script language="javascript">
 var d1=new Date();
 document.write(giorni_mese(d1));
 </script>

</form>
</body>
</html>
Rimane il problema di come passare la data aggiornata alla funzione mese_avanti.
 

Discussioni simili