Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Calendario che non si chiude...

    Ciao a tutti....
    Ho scaricato un'applicazione JaveScript per la funzione calendario nei form che è fantastica !
    Un semplice intoppo.... inseriti 2 calendari nello stesso form, il primo si chiude correttamente dopo aver cliccato sulla data, attivando il secondo e inserita la data, il popup non si chiude automaticamente ma devo cliccare fuori dalla finestra.
    Chi mi sa dire dovè l'inghippo???
    Il funzionamento lo potete trovare all'indirizzo
    http://www.lagodidro.eu/de/prenotazioni_de.htm
    (non è pubblicità al sito voglio solo farvi capire di cosa parlo)
    GRAZIE in anticipo

  2. #2
    ah, ho trovato l'inghippo:

    i due input a cui sono associati i calendari hanno come id "sel" e "sel3", ma la funzione sull'evento onselect del calendario è:

    function selected(cal, date) {
    cal.sel.value = date; // just update the date in the input field.
    if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
    cal.callCloseHandler();
    }

    Cambia l'id nel controllo della sezione e sei a posto

  3. #3
    GARNDE artorius!!!! FUNZIONA....
    Continuando a leggere stringhe di dati alla fine non ci vedo più ( devo mangiarmi una fiesta!!! )
    Grazie mille e a buon rendere

  4. #4
    Visto che sei ferrato...
    Volendo fare in modo che prima di selezzionare la seconda data (partenza) il navigatore debba selezzionare la prima (arrivo) cosa devo fare??
    Non è finita.... nella seconda data il selettore devo farlo partire dal giorno selezionato nella prima.... e non dal giorno odierno.
    Mi sono spiegato!? o ci sono troppi giri di date?
    GRAZIE in anticipo

  5. #5
    Vediamo, fai così:
    1- Metti ad entrambi gli input readonly="readonly", così che non si possano editare.
    2- metti disabled="true" al secondo bottone (se non può schiacciarlo non può selezionare la data) e mettici un id (tipo id="secondoButton")
    3- Modifica la funzione selected così:
    Codice PHP:
    function selected(caldate) {
       
    cal.sel.value date// just update the date in the input field.
       
    if (cal.dateClicked && (cal.sel.id == "sel" || cal.sel.id == "sel3"))
          
    cal.callCloseHandler();
          if(
    cal.sel.id == 'sel3' && cal.sel.value)
          {
             
    document.getElementById("secondoButton").disabled false;
          }
       }

    Per impostare la data nello script che usi per gestire il calendario devi passare una stringa in un formato supportato dall'oggetto Date (new Date("Mese gg, aaaa"), in inglese il mese ovviamente), nel costruttore dell'oggetto Calendar.

    Ti conviene modificare la tua funzione showCalendar in modo che accetti anche la data:
    Codice PHP:
    function showCalendar(idformatdateStrshowsTimeshowsOtherMonths) {
     var 
    el document.getElementById(id);
     if (
    _dynarch_popupCalendar != null) {
     
    // we already have some calendar created
     
    _dynarch_popupCalendar.hide(); // so we hide it first.
     
    } else {
     
    // first-time call, create the calendar.
     
    var cal = new Calendar(1dateStrselectedcloseHandler);
     
    // uncomment the following line to hide the week numbers
     // cal.weekNumbers = false;
     
    if (typeof showsTime == "string") {
     
    cal.showsTime true;
     
    cal.time24 = (showsTime == "24");
     }
     if (
    showsOtherMonths) {
     
    cal.showsOtherMonths true;
     }
     
    _dynarch_popupCalendar cal// remember it in the global var

     
    cal.setRange(19002070); // min/max year allowed.
     
    cal.create();
     }
     
    _dynarch_popupCalendar.setDateFormat(format); // set the specified date format
     
    _dynarch_popupCalendar.parseDate(el.value); // try to parse the text in field
     
    _dynarch_popupCalendar.sel el// inform it what input field we use

     
    _dynarch_popupCalendar.showAtElement(el.nextSibling"Br"); // show the calendar

     
    return false;

    non so se si vede, ma oltre ai parametri ho modificato anche la linea dove fai new Calendar.

    poi crei un array fuori dalle funzioni:

    Codice PHP:
    var engMonth = new Array();
    engMonth[1] = 'January';
    engMonth[2] = 'February';
    engMonth[3] = 'March';
    engMonth[4] = 'April';
    engMonth[5] = 'May';
    engMonth[6] = 'June';
    engMonth[7] = 'July';
    engMonth[8] = 'August';
    engMonth[9] = 'September';
    engMonth[10] = 'October';
    engMonth[11] = 'November';
    engMonth[12] = 'December'
    A questo punto, dal secondo bottone togli l'onclick e trasformi ancora la funzione select()

    Codice PHP:
    function selected(caldate) {
       
    cal.sel.value date// just update the date in the input field.
       
    if (cal.dateClicked && (cal.sel.id == "sel" || cal.sel.id == "sel3"))
          
    cal.callCloseHandler();
          if(
    cal.sel.id == 'sel3' && cal.sel.value)
          {
             var 
    button document.getElementById("secondoButton");
             
    button.disabled false;
             var 
    splitted date.split("/");
             var 
    dateStr engMonth[parseInt(splitted[1])]+" "+splitted[0]+", "+splitted[2]:
             
    button.onclick = function(){
                return 
    showCalendar('sel1''%d/%m/%Y'dateStr);
             }
          }
       }

    Dovrebbe andare...

  6. #6
    Grazie... Tutto bene fintanto che non inserisco l'ultima modifica su "function selected(cal, date)"
    Modificando la funzione come dici non si aprono i popup delle date.
    http://www.lagodidro.eu/de/Copia di prenotazioni_de.htm

    Cosa non va...??

    function selected(cal, date) {
    cal.sel.value = date; // just update the date in the input field.
    if (cal.dateClicked && (cal.sel.id == sel1" || cal.sel.id == "sel3"))
    cal.callCloseHandler();
    if(cal.sel.id == 'sel3' && cal.sel.value)
    {
    var button = document.getElementById("secondoButton");
    button.disabled = false;
    var splitted = date.split("/");
    var dateStr = engMonth[parseInt(splitted[1])]+" "+splitted[0]+", "+splitted[2]:
    button.onclick = function(){
    return showCalendar('sel1', '%d/%m/%Y', dateStr);
    }
    }
    }
    }

  7. #7
    var dateStr = engMonth[parseInt(splitted[1])]+" "+splitted[0]+", "+splitted[2]:

    Ci vuole il ;

  8. #8
    continua a non funzionare!!!
    http://www.lagodidro.eu/de/Copia%20d...tazioni_de.htm

    In più se apri la pagina in explorer ,l'IFRAME in parte si modifica quando il popup ci va sopra... Perchè? con firefox non accade!
    O faccio in modo di visualizarre il popup più a sinistra (????) o .... dimmi tu se lo sai...
    Grazie ancora per il tempo dedicatomi

    PS perchè mi hai fatto mettere "dateStr"

  9. #9
    Originariamente inviato da campacavallo1
    continua a non funzionare!!!
    http://www.lagodidro.eu/de/Copia%20d...tazioni_de.htm
    Perché non hai messo l'id al secondo bottone, ci credo che button rimane null (function selected riga 5 della funzione)
    In più se apri la pagina in explorer ,l'IFRAME in parte si modifica quando il popup ci va sopra... Perchè? con firefox non accade!
    O faccio in modo di visualizarre il popup più a sinistra (????) o .... dimmi tu se lo sai...
    Grazie ancora per il tempo dedicatomi
    Dunque se in explorer non funziona il problema principalemente è la microsoft... comunque non mi pare un problema grave, se si sposta o si chiude torna a posto.

    PS perchè mi hai fatto mettere "dateStr"
    ... scusa, ma le hai capite le modifiche che ti ho fatto fare impostare la data di partenza al calendario?

  10. #10
    Grazie.
    Scusa ma forse mi hai preso per un programmatore!
    Non lo sono, il sito che ho fatto, è stato creato in pochi giorni utilizzando solo intuizione e tante informazioni sparse per il Web...
    La logica si ferma quando trovo istruzioni con etichette di cui non so la funzione.

    Ho provato ad inserire l'ID nella riga 5, ma sicuramente sbaglio qualche segno ( . , " spazi ecc... ) se gentilmente mi mostri come deve essere scritta la riga 5 mi fai una grossa cortesia.
    Grazie ancora, abbi pazienza

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.