Premeto che non sono un'esperto di javascript, che comunque riesco ad usare e adattare nelle mie pagine PHP senza grossi problemi.
Ma adesso sto veramente impazzendo!!! Non riesco a trovare una soluzione al mio problema.
Ho un form di un preventivo che deve calcolare mentre viene compilato vari importi in base a varie opzioni, o inserendo dei valori o con dei checkbox.
Riesco a fare tutti i calcoli diciamo senza problemi ma senza rispettare le cifre decimali.
Intanto dovrebbe esserci la virgola al posto del punto e poi ci dovrebbero essere le classiche due cifre decimali dell'euro con i vari arrotondamenti.
Chi mi può aiuitare???
Ecco una parte dello script che uso per i calcoli:
<script language="JavaScript">
function calcola(myform) {
if (myform.mezzap.value!=0)
{
var v1=myform.mezza.value;
var v2=21;
myform.mezzap.value=v1*v2*myform.giorni.value;
}
if (myform.fullp.value!=0)
{
var v1=myform.full.value;
var v2=39;
myform.fullp.value=v1*v2*myform.giorni.value;
}
if (myform.menup.value!=0)
{
var v1=myform.menu.value;
var v2=81;
myform.menup.value=v1*v2*myform.giorni.value;
}
if (myform.cabinep.value!=0)
{
var v1=myform.cabine.value;
var v2=45;
myform.cabinep.value=v1*v2*myform.giorni.value;
}
if (myform.singolep.value!=0)
{
var v1=myform.singole.value;
var v2=127;
myform.singolep.value=v1*v2*myform.giorni.value;
}
if (myform.istruttorep.value!=0)
{
var v1=80;
myform.istruttorep.value=v1*myform.giorni.value;
}
if (myform.guidasubp.value!=0)
{
var v1=66;
myform.guidasubp.value=v1*myform.giorni.value;
}
if (myform.infermierep.value!=0)
{
var v1=87;
myform.infermierep.value=v1*myform.giorni.value;
}
if (myform.chefp.value!=0)
{
var v1=220;
myform.chefp.value=v1*myform.giorni.value;
}
if (myform.bodyp.value!=0)
{
var v1=160;
myform.bodyp.value=v1*myform.giorni.value;
}
if (myform.babyp.value!=0)
{
var v1=70;
myform.babyp.value=v1*myform.giorni.value;
}
if (myform.guidap.value!=0)
{
var v1=100;
myform.guidap.value=v1*myform.giorni.value;
}
if (myform.camerierep.value!=0)
{
var v1=105;
myform.camerierep.value=v1*myform.giorni.value;
}
if (myform.costo.value!="")
var t1=eval(myform.costo.value);
else
var t1=0;
if (myform.equi.value!="")
var t2=eval(myform.equi.value);
else
var t2=0;
if (myform.datap.value!="")
var t3=eval(myform.datap.value);
else
var t3=0;
if (myform.part.value!="")
var t4=eval(myform.part.value);
else
var t4=0;
if (myform.duratap.value!="")
var t5=eval(myform.duratap.value);
else
var t5=0;
if (myform.mezzap.value!="")
var t6=eval(myform.mezzap.value);
else
var t6=0;
if (myform.fullp.value!="")
var t7=eval(myform.fullp.value);
else
var t7=0;
if (myform.menup.value!="")
var t8=eval(myform.menup.value);
else
var t8=0;
if (myform.cabinep.value!="")
var t9=eval(myform.cabinep.value);
else
var t9=0;
if (myform.singolep.value!="")
var t10=eval(myform.singolep.value);
else
var t10=0;
if (myform.aggiuntop.value!="")
var t11=eval(myform.aggiuntop.value);
else
var t11=0;
if (myform.istruttorep.value!="")
var t12=eval(myform.istruttorep.value);
else
var t12=0;
if (myform.guidasubp.value!="")
var t13=eval(myform.guidasubp.value);
else
var t13=0;
if (myform.infermierep.value!="")
var t14=eval(myform.infermierep.value);
else
var t14=0;
if (myform.chefp.value!="")
var t15=eval(myform.chefp.value);
else
var t15=0;
if (myform.bodyp.value!="")
var t16=eval(myform.bodyp.value);
else
var t16=0;
if (myform.babyp.value!="")
var t17=eval(myform.babyp.value);
else
var t17=0;
if (myform.guidap.value!="")
var t18=eval(myform.guidap.value);
else
var t18=0;
if (myform.camerierep.value!="")
var t19=eval(myform.camerierep.value);
else
var t19=0;
myform.totalep.value=parseFloat(t1+t2+t3+t4+t5+t6+ t7+t8+t9+t10+t11+t12+t13+t14+t15+t16+t17+t18+t19);
var s1=eval(myform.totalep.value);
myform.agenziap.value=(10*s1/100);
var s2=eval(myform.agenziap.value);
var s3=s1+s2;
myform.ivap.value=(20*s3/100);
var s4=eval(myform.ivap.value);
if (myform.scontop.value==0)
{
myform.nettop.value=parseFloat(s3+s4);
}else{
ss5=eval(myform.scontop.value);
myform.nettop.value=parseFloat(s3+s4-ss5);
}
s5=eval(myform.nettop.value);
if (myform.partecipanti.value!="")
{
var p1=eval(myform.partecipanti.value);
myform.personap.value=s5/p1;
}
}
</script>
Questo come passo i "dati" dal form:
<tr>
<td width=50% height=25><font size=2 face=verdana color=red>Numero dei partecipanti</td><td align=center width=15%>n°</td><td width=10% align=center><input name=partecipanti size=3 onKeyUp=\"Partecipanti(this.form);calcola(this.for m);\"></td><td width=10% align=right><input name=\"part\" type=\"text\" id=\"part\" readonly>
</tr>
Grazie.....