Visualizzazione dei risultati da 1 a 3 su 3

Discussione: help calendario..

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    6

    help calendario..

    salve a tutti devo realizzare un calendario in javascript...e per ora ne ho fatto un po...poi pero mi sono bloccato...perchè accade una cosa ke nn riesco a spiegarmi..la prima volta ke lo lancio va...quando provo ad interagire non funziona piu niente...ora mi spiego meglio...so ke mancano ancora un paio di funzioni pero prima di continuare volevo risolvere questo prob...allora quando io lo apro il calendario parte dal mese corrente, pero quando premo su avanti o su indietro per cambiare mese il programma si pianta...eppure utilizza la stexa funzione...help

    codice:
    <html>
    <head>

    <script>
    var attuale = new Date();
    var mese=attuale.getMonth();
    var anno=calcoloAnno(attuale.getYear());
    var bisestile=false;

    var nomeMese=new Array();
    nomeMese.push("Gennaio");
    nomeMese.push("Febbraio");
    nomeMese.push("Marzo");
    nomeMese.push("Aprile");
    nomeMese.push("Maggio");
    nomeMese.push("Giugno");
    nomeMese.push("Luglio");
    nomeMese.push("Agosto");
    nomeMese.push("Settembre");
    nomeMese.push("Ottobre");
    nomeMese.push("Novembre");
    nomeMese.push("Dicembre");
    var giorno=new Array();
    giorno.push("Lun");
    giorno.push("Mar");
    giorno.push("Mer");
    giorno.push("Gio");
    giorno.push("Ven");
    giorno.push("Sab");
    giorno.push("Dom");
    inizio();


    function calcoloGiorni(appo,bisestile){
    if(appo==8||appo==3||appo==5||appo==10){
    giorniMese=30;
    }else if(appo!=1){
    giorniMese=31;
    }else if(bisestile==true){
    giorniMese=29;
    }else{
    giorniMese=28;
    }
    return giorniMese;
    }

    function calcoloBisestile(anno){
    mom=false;
    if(anno%4==0&&anno%100!=0)mom=true;
    else mom=false;
    return mom;
    }

    function calcoloAnno(anno){
    if(anno<1000)anno+=1900;
    return anno;
    }

    function fun(event){
    tasto=event.keyCode;
    if(tasto==37)indietro();
    else if(tasto==39)avanti();
    else alert("no");
    }

    function inizio(){


    bisestile=calcoloBisestile(anno);
    giorniMese=calcoloGiorni(mese,bisestile);
    disegna(1,giorniMese);
    }

    function avanti(){
    mese++;
    if(mese==12){
    mese=0;
    anno=calcoloAnno(anno+1);
    bisestile=calcoloBisestile(anno);
    }

    giorniMese=calcoloGiorni(mese,bisestile);
    disegna(1,giorniMese);

    }

    function indietro(){
    mese--;
    if(mese<0){
    mese=11;
    anno=calcoloAnno(anno-1);
    bisestile=calcoloBisestile(anno);
    }

    giorniMese=calcoloGiorni(mese,bisestile);
    disegna(1,giorniMese);
    }

    function leggi(gg,numMese,nomeAnno){
    alert(gg);
    alert(nomeMese[numMese]);
    alert(nomeAnno);
    }

    function disegna(giornoInizio,giorniMese){

    document.write("<table>");
    giornoInizio--;
    gg=0;
    linee=5;
    scarto=0;
    if(35-giornoInizio<giorniMese)linee++;
    document.write("<tr>");
    document.write("<td align=center colspan=7>"+nomeMese[mese]+" "+anno+"</td>");
    document.write("</tr>");
    document.write("<tr>");
    for(i=0;i<7;i++)document.write("<td>"+giorno[i]+"</td>");
    document.write("</tr>");
    for(i=0;i<linee;i++){
    document.write("<tr>");
    for(j=0;j<7;j++){
    if(scarto<giornoInizio){
    gg--;
    scarto++;
    }
    gg++;

    document.write("<td>");
    if(gg!=0&&gg<=giorniMese){
    if(gg<10)gg="0"+gg;
    document.write("<input type=button value="+gg+" onclick=leggi("+gg+","+mese+","+anno+");>");
    }document.write("</td>");
    }
    document.write("</tr>");
    }
    document.write("</table>");
    document.write("<input type=button value=- onclick=javascript:indietro();>");
    document.write("<input type=button value=+ onclick=avanti();>");
    }
    </script>

    </head>
    <body>

    <form>




    </form>

    </body>

    </html>

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il perche' e' stato ripetuto veramente un' infinita' di volte:
    document.write richiamato durante il rendering stampa come atteso,
    finita questa fase, ulteriori richiami a document.write sostituiscono tutto il documento con quanto decidi di stampare
    (in pratica il tuo "disegna" richiamato da "avanti" e "indietro")

    devi cambiare approccio, se non te la cavi con i metodi del DOM createElement/appendChild
    devi usare l' innerHTML

    ricerca, e' tutto abbondantemente trattato

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    6
    scusate...è che sono proprio agli inizi...ho cercato un po e poi ho provato...ma non mi riesce proprio...non è ke qualcuni potrebbe aiutarm a rendere quel codice dinamico...usando la inner o la document.create...scusate ancore... Un Buon Natale a tutti

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 © 2026 vBulletin Solutions, Inc. All rights reserved.