Back to top

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

Offline joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #40 il: 04 Feb 2012, 19:34:15 »
allora ok per calcolare il prezzo1 del radio, ma per far calcolare anche il prezzo2 della seconda opzione radio ? devo duplicare il codice in questo modo ?


function updatethis(form) {[/size]     form.elements['prezzo'].value =  form.elements['prezzo2'].value + form.elements['totale_giorni'].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 vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #41 il: 04 Feb 2012, 19:48:27 »
Ad ogni  campo radio assegni un value uguale al prezzo

Codice: [Seleziona]
<input type="radio" name="prezzo1" value="50" /> Prezzo € 50<br />
 <input type="radio" name="prezzo1" value="100" /> Prezzo € 100<br />
ecc.
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 #42 il: 04 Feb 2012, 21:35:14 »

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.




inserendo il codice in "load js" il calcolo della differenza date non funzia.....
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 #43 il: 05 Feb 2012, 08:39:28 »
questo e' il risultato del codice generato e modificato:



[size=78%]-------------[/size]
CALCOLO DATE


<div class="ccms_form_element cfdiv_text" id="data_1_container_div"><label>Arrivo</label>
<input maxlength="150" size="30" class="" title="" label_over="0" hide_label="0" type="text" value="" name="data_1" />
<div class="clear"><>
<div id="error-message-data_1"><><>




<div class="ccms_form_element cfdiv_text" id="data_2_container_div"><label>Partenza</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 id="error-message-data_2"><><>




<div class="ccms_form_element cfdiv_text" id="differenza_date_container_div"><label for="diff">Totale giorni</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 id="error-message-diff"><><>






---------
RADIO


<div class="ccms_form_element cfdiv_radio" id="autoID-7bdb2e87a3cc9bc69009083e7b204f71_container_div"><label>Scegli la soluzione</label><input type="hidden" name="input_radio_4" value="" alt="ghost" />


<div style="float:left; clear:none;">




<input type="radio" name="input_radio_4" onChange="updatethis(this.form);" id="input_radio_4_lowcost" title="" value="50" class="validate['required']" />




<label for="input_radio_4_lowcost">Lowcost</label>




<input type="radio" name="input_radio_4" onChange="updatethis(this.form);" id="input_radio_4_Offerta2" title="" value="100" class="validate['required']" />




<label for="input_radio_4_offerta2">Offerta2</label>
<><div class="clear"><><div id="error-message-input_radio_4"><><>




<div class="ccms_form_element cfdiv_text" id="autoID-3a220d88789f3372d5158c7e85393912_container_div">
<label>Prezzo</label>




<input maxlength="150" size="30" class=" validate['required','number']" title="" type="text" value="" name="prezzo" />




<div class="clear"><><div id="error-message-prezzo"><><>




--------------------
Mentre il codice Js inserito e' il seguente:



function updatethis(form) {
     form.elements['prezzo'].value =  form.elements['lowcost'].value + form.elements['diff'].value);
      }


------------


Ma mi sto rendendo conto che comunque manca nel js il richiamo per il prezzo relativo all'Offerta2... dove sbaglio?


« Ultima modifica: 05 Feb 2012, 08:41:30 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 #44 il: 05 Feb 2012, 09:36:06 »
C'è anche un campo nascosto che ha lo stesso nome dei campi radio "input_radio_4" non credo che la cosa vada bene.

Nel javascript non vedo le altre funzioni definite in precedenza.
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 #45 il: 05 Feb 2012, 10:03:24 »
il codice js completo



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;
}


function updatethis(form) {[/size]     form.elements['prezzo'].value =  form.elements['lowcost'].value + form.elements['diff'].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 #46 il: 05 Feb 2012, 10:15:01 »
ho eliminato il campo nascosto.... ma non funzia ugualmente
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 #47 il: 05 Feb 2012, 12:37:39 »
sembra che non vanno daccordo i 2 codici js... se inserisco il secondo codice , il calcolo della differenza date non funziona
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 #48 il: 06 Feb 2012, 10:23:40 »
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 #49 il: 06 Feb 2012, 22:25:23 »
ma il "+" in questa espressione significa somma ? per moltiplicare devo usare "*" ??
form.elements['lowcost'].value + form.elements['diff'].value);      }

e comunque non funzia........
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 #50 il: 08 Feb 2012, 19:07:06 »
valesssss.... sto fermo sob... non riesco a uscirne, ho provato tutte le combinazioni ma non funziona... non capisco ... mi dai un idea di dove cercare ? 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 #51 il: 24 Feb 2012, 11:24:01 »
Vales... un altro imput di aiuto... mi sono arenato, inserendo i codici di calcolo prezzo non mi funziona la differenza date... come risolvo ?
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 #52 il: 01 Mar 2012, 12:34:11 »
qualcuno ha una idea per trovare il bandolo di questa matassa ????....
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 #53 il: 24 Mar 2012, 16:08:21 »
ciao Vales, sto riscontrando un problema sul motore di calcolo, o meglio, ho necessita' di apportare una variazione.
Quando si inseriscono le date di arrivo e partenza, il motore calcola in modo esatto la differenza del tempo tra una data e l'altra, ma nel caso capita che la differenza tra le date sia ad esempio inferiore a 3 giorni ma superiore a 2 , mi da il risultato decimale ad es.: 2,83333 .
Per questo motivo ho necessita' di arrotondare alla cifra superiore immediatamente dopo la precedente , ma il risultato deve essere con numero senza decimali. Facendo riferimento all'esempio precedente, il risultato che vorrei ottenere deve essere "3".
Si puo' fare ?
grazie per la risposta 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 joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
Re:chronoform motore di calcolo differenza date calendario
« Risposta #54 il: 24 Mar 2012, 16:14:59 »
mi sorge un dubbio..... e' possibile che il motore di calcolo prenda il valore dell'orario inserito ? mi sembra strano
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 #55 il: 25 Mar 2012, 08:45:30 »
Credo che vi siano delle funzioni in grado di arrotondare i valori come voluto.
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 #56 il: 02 Apr 2012, 13:09:38 »

Ciao Vales, ho necessita' di aggiungere un giorno in piu' nel motore di calcolo che sto utilizzando, ho trovato il codice che segue, come faccio a farlo funzionare con il codice gia' creato?



public String addDay(String dateDbf,int dayToAdd){
      
      String dataNew = "";
      String DATE_FORMAT = "yyyyMMdd";
      SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
      try{
         Calendar c1 = Calendar.getInstance();
         int anno = Integer.parseInt(dateDbf.substring(0,4));
         int mese = Integer.parseInt(dateDbf.substring(4,6))-1;
         int giorno = Integer.parseInt(dateDbf.substring(6,8));
         c1.set(anno, mese, giorno);
         c1.add(Calendar.DATE,dayToAdd);
         dataNew = sdf.format(c1.getTime());
      }catch (Exception e){
         e.printStackTrace();
      }
      // RITORNA DIFFERENZA DATE
      return dataNew;
   }








Questo e' il codice tuttora online per il calcolo della differenza di date.


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;
}













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 #57 il: 30 Apr 2012, 14:28:04 »
.... con un po' di applicazione nei ritagli di tempo, ho risolto il problema !!!! basta aggiungere +1  cosi come segue ...
giorno = parseInt(stringa.substr(0, 2),10+1);


a questo punto si puo' chiudere questo post come risolto.... grazie a tutti sopratutto a Vales che mi ha instradato con le ottime guide che ha pubblicato.


Al prossimo post !!!!!!!!!!
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 joomba

  • Esploratore
  • **
  • Post: 115
    • Mostra profilo
[RISOLTO] Re:chronoform motore di calcolo differenza date calendario
« Risposta #58 il: 30 Apr 2012, 14:31:43 »
Risolto
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 #59 il: 30 Apr 2012, 19:51:41 »
Ottimo. Ti sei preso una bella soddisfazione.
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

 



Web Design Bolzano Kreatif