Back to top

Autore Topic: chronoform motore di calcolo differenza date calendario  (Letto 26960 volte)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #20 il: 11 Dic 2011, 11:53:26 »
ciao Vales hai qualche news ?
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #21 il: 15 Dic 2011, 16:52:44 »
 
Mi sembra vada bene la prima funzione l'altra è per calcolare quanti giorni mancano alla fine dell'anno.

Va però modificata ora vedo di farla funzionare.



ciao Vales, scusami per il disturbo, hai fatto qualche test di prova ? sono ancora fermo, non riesco ad andare avanti. Ti ringrazio se mi dai qualche ulteriore info.
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #22 il: 19 Dic 2011, 06:58:02 »
Il problema sono i campi data time box che non permettono di inserire il richiamo alla funzione javascripts

Ho provato un nuovo form con due campi normali in cui inserisco le date e tutto è OK.

Questo il codice dei campi

Codice: [Seleziona]
<div class="ccms_form_element cfdiv_text" id="data_1_container_div"><label>Data 1</label><input maxlength="150" size="30" class="" title="" label_over="0" hide_label="0" type="text" value="" name="data_1" />
<div class="clear"></div><div id="error-message-data_1"></div></div><div class="ccms_form_element cfdiv_text" id="data_2_container_div"><label>Data 2</label><input maxlength="150" size="30" class="" title="" label_over="0" hide_label="0" type="text" value="" name="data_2" onchange="giorni_differenza(this.form);")/>
<div class="clear"></div><div id="error-message-data_2"></div></div><div class="ccms_form_element cfdiv_text" id="differenza_date_container_div"><label for="diff">Differenza date</label><input id="diff" maxlength="150" size="30" class="" title="" label_over="0" hide_label="0" type="text" value="" name="diff" />
<div class="clear"></div><div id="error-message-diff"></div></div><div class="ccms_form_element cfdiv_submit" id="input_submit_5_container_div"><input name="input_submit_5" class="" value="Submit" type="submit" />
<div class="clear"></div><div id="error-message-input_submit_5"></div></div>

questo il codice javascript

Codice: [Seleziona]
function controllo_data(stringa){
    var espressione = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
    if (!espressione.test(stringa)) {
        return false;
    }else{
        anno = parseInt(stringa.substr(6,4),10);
        mese = parseInt(stringa.substr(3, 2),10);
        giorno = parseInt(stringa.substr(0, 2),10);
       
        var data=new Date(anno, mese-1, giorno);
        if(data.getFullYear()==anno && data.getMonth()+1==mese && data.getDate()==giorno){
            return true;
        }else{
            return false;
        }
    }
}

function confronta_data(data1, data2){
    // controllo validità formato data
    if(controllo_data(data1) && controllo_data(data2)){
//trasformo le date nel formato aaaammgg (es. 20081103)
data1str = data1.substr(6,4)+data1.substr(3, 2)+data1.substr(0, 2);
data2str = data2.substr(6,4)+data2.substr(3, 2)+data2.substr(0, 2);
        //controllo se la seconda data è successiva alla prima

//document.write(data1str);
//document.write(data2str-data1str);

        if ((data2str-data1str)<0) {
            alert("La data iniziale deve essere precedente quella finale");
        }else{
            alert("ok");
        }
    }else{
        alert("Il formato data deve essere gg/mm/aaaa");
    }
}

function giorni_differenza(form){

//document.write("sono qui");

var data1=form.elements['data_1'].value;
var data2=form.elements['data_2'].value;
//document.write(data1);
    if(!controllo_data(data1) || !controllo_data(data2)){
        alert('Inserire le date nel formato gg/mm/aaaa');
        return -1;
    }

/*    if(!confronta_data(data1,data2)){
        alert('La data di inizio deve essere precedente quella di fine');
        return -1;
    }*/

    anno1 = parseInt(data1.substr(6,4),10);
    mese1 = parseInt(data1.substr(3, 2),10);
    giorno1 = parseInt(data1.substr(0,2),10);
     
    anno2 = parseInt(data2.substr(6,4),10);
    mese2 = parseInt(data2.substr(3, 2),10);
    giorno2 = parseInt(data2.substr(0,2),10);

    var dataok1=new Date(anno1, mese1-1, giorno1);
    var dataok2=new Date(anno2, mese2-1, giorno2);
   
    differenza = dataok2-dataok1;   
    giorni_differenza = new String(differenza/86400000);
    form.elements['diff'].value=giorni_differenza;

    alert(giorni_differenza+' giorni di differenza');
    return giorni_differenza;
}



L'alternativa per usare Data time box potrebbe essere inserire il richiamo al javascripts nel campo differenza data con onclick="giorni_differenza(this.form);")
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #23 il: 19 Dic 2011, 12:30:53 »
ciaoo Vales !!!! ti ringrazio immensamente, ho provato e funziona perfettamente.
L'unica cosa e' che inserendo la data in modo manuale, vorrei rendere obbligatorio la tipologia data da scrivere cioe' far visualizzare un avviso che blocca l'operazione e avverte l'utente che nel caso venga scritta la data in modo diverso,  viene visualizzato un avviso di questo tipo "la data inserita e' errata ed il modo giusto da inserire e' ad es. 10/10/2011". Ho attivato il Tooltip , ma a parte il fatto che l'utente deve cliccare appositamente il "?" per capire, preferirei velocizzare con un avviso. Come posso fare ? 
grazie !!!!
joomba


Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #24 il: 19 Dic 2011, 19:42:03 »
Gli script javascript già controllano che le due date abbiano il formato gg/mm/aaaa.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #25 il: 05 Gen 2012, 14:48:20 »
Ciao Vales, innanzitutto Auguri di Buon Anno anche se in ritardo ( essendo rientrato oggi al lavoro).
Allora ho testato i codici come mi hai indicato e funzionano, ma ora che li ho caricati online, inserendo le date vengono calcolate a video, ma quando ricevo l'email del form ottengo questa risposta
-------------------------

Arrivo    {data1}
Partenza    {data2}
Totale giorni    {totale_giorni}
Email    joomba@tiscali.it
Riscrivi email    joomba@tiscali.it
Cognome e Nome   joomba
---------------------------


quindi non vengono riportati i dati che vengono inseriti dall'utente. Da cosa puo' dipendere ? Ti ringrazio per l'info che potrai darmi



Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #26 il: 05 Gen 2012, 18:26:32 »
Non riconosce come esistenti quei campi.

Controlla di usare nell'email gli stessi nomi dei campi del form.

Es. io avevo usato data_1 e tu data1.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #27 il: 06 Gen 2012, 16:55:01 »
ho risolto parzialmente il problema, cancellando tutto e riscrivendo totalmente il form, ma ottengo l'errore solo nel campo della differenza date, infatti non mi visualizza nella email:


Data 1 10/02/2012
Data 2 12/02/2012
Differenza date {differenza_date}
Email joomba@tiscali.it
Cognome e Nome joomba

Mentre online, effettuando l'inserimento delle date, il calcolo lo visualizzo solo per la prima volta. Se correggo una delle 2 date inserite, il calcolo della differenza non viene piu' visualizzato.


Vorrei provare ad inserire un bottone di "calcola" per calcolare quindi il risultato della differenza delle date per il prezzo del soggiorno. Questi risultati voglio farli comparire in 2 campi differenti ossia differenza date e totale prezzo.


Con il bottone di "calcola" cosi si dovrebbe eliminare il calcolo automatico cliccando con il mouse come nella prova precedente. Come posso fare quindi per aggiungere questo bottone di calcolo ?






Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #28 il: 06 Gen 2012, 18:48:10 »
come diceva archimede dei fumetti ???..... Eureka !
bene ho risolto il problema , ora ricevo tutti i dati perfettamente via email, erano errate alcune parole di sintassi invece che "differenza_date" la parola esatta era "diff" , che io distrattamente non avevo visto inizialmente.


Ora mi rimane di inserire il bottone di calcolo prezzo
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #29 il: 16 Gen 2012, 18:33:43 »
Ciao Vales,
sto cercando di portare a termine il lavoro iniziato, ho inserito un "radio box" con 2 opzioni di scelta, ognuna di queste opzioni ha un prezzo diverso dall'altro, quindi l'utente scegliendo l'opzione che desidera, questa deve calcolare automaticamente il totale nel campo successivo. La moltiplicazione deve avvenire tra il valore del campo "radio box" scelto e il totale dei giorni che risulta dalla differenza tra data arrivo e partenza di cui ai precedenti codici gia' illustrati.
Puoi darmi una mano ?.. ti ringrazio
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #30 il: 16 Gen 2012, 19:34:34 »
Metti il richiamo (onchange) ad una funzione javascript nel radio che quando modificato compie la moltiplicazione del valore del radio con quello dei giorni.

Dovrai definire la funzione e sei a dama.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #31 il: 27 Gen 2012, 10:19:47 »
Ciao Vales...
mi sono dinuovo perso... diversi tentativi ma non ho capito come impostare la funzione e dove inserirla mi dai una dritta appena hai un attimo di tempo ? ti ringrazio
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #32 il: 31 Gen 2012, 17:19:10 »
ciao Vales... scusa se insisto... hai qualche dritta da darmi per capire come inserire onchange e dove trovare la funzione adatta ?
grazie
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #33 il: 04 Feb 2012, 11:00:41 »

Ciao Vales, ho trovato questo codice in una tua guida.... adattandolo al mio lavoro potrebbe essere quello che mi serve.... ma la guida fa riferimento alla versione precedente di chronoform, mentre in V4 devo inserirla in una nuova "Load js" ? Come la lego alla scelta radio con onchange ?


--------
function updatethis(form) {
      form.elements['Field3'].value =  form.elements['Field1'].value * form.elements['Field2'].value);
       }
--------------

Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #34 il: 04 Feb 2012, 11:44:54 »
ok ho capito per quanto riguarda la funzione.... ma il valore (nel mio caso il prezzo) del campo radio come e dove lo inserisco ?
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #35 il: 04 Feb 2012, 12:33:48 »

dunque.... ricapitolando, vediamo se ho ben capito ( o quasi )....

creo una nuova "Load js" che vado a inserire sotto la precedente "Load js" in On LOad
inserisco questo codice:
------
function updatethis(form) {
     form.elements['prezzo'].value =  form.elements['prezzo-1'].value + form.elements['totale_giorni'].value);
      }
-------------

poi inserisco il richiamo nel radio
---- 
name="prezzo-1" onChange="updatethis(this.form);">

e nel campo del risultato inserisco

<input type="text" name="prezzo">


.... ho provato ma non funzia ....

« Ultima modifica: 04 Feb 2012, 14:07:23 da joomba »
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #36 il: 04 Feb 2012, 18:40:44 »
Non è necessario usaare due Load JS basta che tu metta tutte le funzioni in un'unica Load JS
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #37 il: 04 Feb 2012, 19:11:31 »
Non è necessario usaare due Load JS basta che tu metta tutte le funzioni in un'unica Load JS


.... ops... ma il codice relativo ai prezzi dove lo scrivo ??? devo creare un codice come questo che segue ?

function updatethis(form) {[/size]      var costo = 0;      if ((form.elements['asole'].value=="l_sup") || (form.elements['asole'].value=="l_inf")) costo =(form.elements['base'].value * 2.5);     
« Ultima modifica: 04 Feb 2012, 19:14:04 da joomba »
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #38 il: 04 Feb 2012, 19:19:53 »
Il codice lo hai già creato

Codice: [Seleziona]
function updatethis(form) {
     form.elements['prezzo'].value =  form.elements['prezzo-1'].value + form.elements['totale_giorni'].value);
      }

lo devi aggiungere nell'unica Load JS.

Però non mi convince il nome dei radio prezzo-1, meglio non usare il segno meno nei campi nome metti prezzo1.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #39 il: 04 Feb 2012, 19:27:17 »
ok per prezzo1 , ma volevo intendere i valori veri e propri... cioe il prezzo ad esempio euro 50 al giorno, come e dove lo scrivo ?
Non esistono condizioni ideali in cui scrivere, studiare, lavorare o riflettere, ma è solo la volontà, la passione e la testardaggine a spingere un uomo a perseguire il proprio progetto." Konrad Lorenz (1903-1989)

 



Web Design Bolzano Kreatif