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

    problema con calendario pop up

    salve a tutti ho un problema con il un script per fare il calendario con una pop up mi spiego meglio funziona il calendario...pero vorrei che i campi di testo fossero inizializati alla data odierna lo script c'è l'ho ma se lo integro non funziona piu niente nel senso che se clicco sul pulsante non mi visualizza piu il calendario adesso vi posto i due codici :


    questa e la pagina :

    <script language="javascript">
    function settag() {
    var oggi = new Date();
    document.myform.giorno.value = oggi.getDate();
    document.myform.mese.value = oggi.getMonth() +1;
    document.myform.anno.value = oggi.getFullYear();
    }

    </script>

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript">
    document.write('<script language="JavaScript" src="datax.js"></sc' + 'ript>');
    </script>
    <style type="text/css">
    <!--
    -->
    </style>
    </head>

    <body bgcolor="#FFFFFF" onLoad="settag();">
    <script language="JavaScript">
    var source;
    var tipo;
    var campi = new Array();

    function cal(val, e, t) {
    var dt = new Array();
    xPos = (document.layers) ? e.pageX : ((document.all) ? event.x : e.clientX);
    yPos = (document.layers) ? e.pageY : ((document.all) ? event.y : e.clientY);

    tipo = t;
    source = val;
    if (t == 0) {
    dt[0] = val[0].value;
    dt[1] = val[1].value;
    dt[2] = val[2].value;
    }
    else
    dt = val.value.split('-');

    showCalendar(new Date(dt[2], dt[1] - 1, dt[0]), xPos, yPos);
    }
    </script>
    <form name="myform" >
    <table width="10%" border="0" cellspacing="0" cellpadding="4" align="center">
    <tr>
    <td nowrap align="right"><font face="Arial, Helvetica, sans-serif" size="2">Data
    iniziale:</font></td>
    <td nowrap><input type="text" name="giorno" size="4" > <input type="text" name="mese" size="4" >
    <input type="text" name="anno" size="6" > <input type="button" name="go" value="V" onMouseDown="cal(new Array(giorno, mese, anno), event, 0)">
    </td></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td align="right"></td>
    <td></td>
    </tr>
    </table>


    </form>
    </body>
    </html>

    questa e la pagina che gnera il calendario :

    var xwidth = 220;
    var xheight = 180;
    var browser = document.layers ? 0 : document.all ? 1 : 2;


    // colori
    var backtable = '#90C0FF';
    var calendback = '#DDDDBB';
    var lines = '#404040';
    var bright = '#000000';
    var festa = '#FD9139';

    // ------ Non cambiare ----------
    var mesi = new Array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno',
    'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');

    var days = new Array('Lu', 'Ma', 'Me', 'Gi', 'Ve', 'Sa', 'Do');
    var dd = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

    var today = new Date();
    var anno = today.getFullYear();
    var mese = today.getMonth();
    var currday = today.getDate();
    var cellwidth = Math.floor(xwidth / 7);
    xwidth = cellwidth * 7;
    var xmese = 0;
    var aboutx = false;
    var isOn = false;


    function action(g, m , a) {
    function format(x) {
    return x > 9 ? x : "0" + x;
    }
    getId().showIt(false);

    if (tipo == 0) {
    source[0].value = format(g);
    source[1].value = format(m + 1);
    source[2].value = a;
    }
    else
    source.value = format(g) + '-' + format(m + 1) + '-' + a;
    }

    document.write('<style type="text/css">\n<!--');
    document.write('.cal { font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold; color: #000099}');
    document.write('.num { font-family: Arial, Helvetica, sans-serif; font-size: 12px; text-decoration:none}');
    document.write('.mese { font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #663300}');
    document.write('.butt { font-family: Arial, Helvetica, sans-serif; font-size: 10px}');
    document.write('-->\n</style>');


    function comparedate(d1, d2) {
    if (d1.getFullYear() == d2.getFullYear() && d1.getMonth() == d2.getMonth() && d1.getDate() == d2.getDate())
    return true;
    return false;
    }

    function pasqua(aa) {
    var xx = new Array(22, 22, 23, 23, 24, 24);
    var yy = new Array(2, 2, 3, 4, 5, 5);
    var a = aa % 19;
    var b = aa % 4;
    var c = aa % 7;

    var i = Math.floor(aa / 100) - 15;
    var x = xx[i], y = yy[i];
    var d = (19*a + x) % 30;
    var e = (2*b + 4*c + 6 * d + y) % 7;

    var p = 22 + d + e;

    var m = 300;
    if (p > 31) {
    m = 400;
    p = p - 31;
    }
    return m + p;
    }


    function isfesta(d) {
    var feste = new Array(0, 101, 106, 425, 501, 602, 815, 1101, 1208, 1225, 1226);

    if (d.getDay() == 0)
    return true;

    var pp = pasqua(d.getFullYear()) + 1; // Pasquetta
    if (pp % 100 > 31)
    pp = 401;

    feste[0] = pp;
    for (var i = 0; i < feste.length; i++)
    if (Math.floor(feste[i] / 100) == d.getMonth() + 1) {
    var gg = feste[i] % 100;
    if (gg == d.getDate())
    return true;
    }

    return false;
    }


    function calendar(currday, mese, anno) {

    var dx = 2 - (new Date(anno, mese, 1)).getDay();
    if (dx == 2)
    dx = -5;
    var daysInMonth = dd[mese];

    if (mese == 1) {
    if (anno % 4 == 0 && anno % 100 != 0 || anno % 400 == 0)
    daysInMonth++
    }

    var tx = '<div class="mese">' + mesi[mese] + ' ' + anno +'</div>\n';
    tx += '<table width="' + xwidth + '" border="0" cellspacing="1" cellpadding="1">\n';
    tx += '<tr align="right">\n';

    for (var i = 0; i < 7; i++)
    tx += '<td width="' + cellwidth+ '" class="cal">' + days[i] + '</td>\n';

    tx += '</tr>\n';
    for (var j = 0; j < 6; j++) {
    tx += '<tr bgcolor="' + calendback + '" align="right">\n';
    for (var i = 0; i < 7; i++) {
    var bgstring = "";
    var fgcol = lines;
    var fgstring = '';

    if (dx > 0 && dx <= daysInMonth) {
    fgstring = dx;
    var ddx = new Date(anno, mese, dx);
    if (isfesta(ddx)) {
    bgstring = ' bgcolor="' + festa + '"';
    }
    if (comparedate(ddx, today)) {
    fgcol = bright;
    fgstring = '<u>' + dx + '</u>\n';
    }
    var tempdate = ddx.getDate() + ", " + ddx.getMonth() + ", " + ddx.getFullYear();
    fgstring = '<font color="' + fgcol + '">' + fgstring + '</font>\n';
    }
    tx += '<td width="' + cellwidth + '" class="num"' + bgstring + '>\n';
    tx += fgstring;
    tx += '</td>\n';
    dx++;
    }
    tx += '</tr>\n';
    }
    tx += '</table>\n';

    return tx;
    }


    function dataframe(x) {
    var s = '<table width="' + xwidth + '" border="1" cellspacing="0" cellpadding="0" bgcolor="' + backtable + '">';
    s += '<tr>\n<td class="mese" valign="middle">';

    s += x; calendar(currday, mese, anno);

    s += '</td></tr><tr><td>';
    s += '<form class="butt"><table width="100%" border="0" cellspacing="0" cellpadding="2">';
    s += '<tr>';
    s += '<td><input type="button" name="about" value="about" class="butt" onclick="xabout()"></td>';
    s += '<td align="right"><input type="button" name="prev" value=" - " class="butt" onclick="altro_mese(-1)">';
    s += '<input type="button" name="current" value="Default" class="butt" onclick="altro_mese(9)">';
    s += '<input type="button" name="next" value=" + " class="butt" onclick="altro_mese(1)"></td>';
    s += '</tr></form></table>';

    s += '</td>\n</tr>\n</table>';
    return s;
    }


    function altro_mese(x) {
    xmese += x;
    if (x == 9)
    xmese = 0;
    var xday = (xmese == 0)? currday : 99;
    var mm = (mese + xmese) % 12;

    while (mm < 0)
    mm += 12;

    var s = dataframe(calendar(xday, mm, anno + Math.floor((mese + xmese) / 12)));
    writeLayer(s);
    aboutx = false;
    }




    function getId() {
    switch (browser) {
    case 0:
    return document.layers.calframe;
    case 1:
    return eval('calframe');
    case 2:
    return document.getElementById("calframe");
    }
    }


    function moveLayer(xPos, yPos) {
    switch (browser) {
    case 0:
    this.left = xPos;
    this.top = yPos;
    break;
    case 1:
    this.style.pixelLeft = xPos;
    this.style.pixelTop = yPos;
    break;
    default:
    this.style.left = xPos;
    this.style.top = yPos;
    }
    }


    function createlayer() {
    var s;
    if (document.layers)
    s = '<layer id="calframe" visibility="hide" z-index=1>';
    else
    s = '<div id="calframe" style="position:absolute; visibility: hidden">';
    if (document.layers)
    s += '</layer>';
    else
    s += '</div>';

    document.writeln(s);
    }


    function showIt(on) {
    isOn = on;
    if (browser)
    this.style.visibility = (on) ? "visible" : "hidden";
    else
    this.visibility = (on) ? "show" : "hide"
    }


    function writeLayer(s) {
    var id = getId();
    if (browser)
    id.innerHTML = s;
    else {
    id.document.open();
    id.document.write(s);
    id.document.close();
    }
    }

    function init() {
    var id = getId();
    id.moveLayer = moveLayer;
    id.showIt = showIt;
    id.showIt(false);
    }


    function showCalendar(d, xpos, ypos) {
    if (!isOn) {


    anno = today.getFullYear();
    mese = today.getMonth();
    currday = today.getDate();

    if (arguments.length > 2) {
    var id = getId();
    id.moveLayer(xpos, ypos);
    }
    else
    getId().moveLayer(100, 100);

    xmese = 0;

    writeLayer(dataframe(calendar(currday, mese, anno)));

    }
    getId().showIt(!isOn);
    }



    createlayer(1);
    onload = init;


    grazie a tutti..........

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao maverix,

    il calendario viene inizializzato dalla funzione init() associata all'onload da codice
    codice:
    onload = init;
    poi tu nell'onload del body imposti la data odierna con la funzione settag() che elimina la funzione init()
    codice:
    onLoad="settag();"
    dal file js togli onload = init; e nel body metti
    codice:
    onLoad="init();settag();"

  3. #3
    grazie adesso provo pero solo per curiosita volevo personalizzare il tuo calendario...pero mi da un errore che non capisco sara dovuto al mio copia ed incolla ma mi da errore se magari dopo vuoi io ti posto quello che ho capiato cosi mi potresti far capire dove ho sbagliato...cmq adesso le modifiche che mi hai suggerito grazie ancora!!!!!!!!!!!!!

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ok maverix
    se hai qualcosa on-line da vedere però è meglio

  5. #5
    eccoti il link......

    http://www.reddy.it/prova/index01.html

    cmq la modifica di pirma funziona adesso voglio trasformare quelle text in select ora provo grazie ancora.....

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    alla riga 178 ci sono errori con gli apici
    codice:
    txt = txt+' onmouseover="this.bgColor=''+Layout.CellaBgOver+''" onmouseout="this.bgColor=''+Layout.CellaBg+''"'
    dovrebbe essere così
    codice:
    txt = txt+' onmouseover="this.bgColor=\''+Layout.CellaBgOver+\''" onmouseout="this.bgColor=\''+Layout.CellaBg+'\'"'

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.