Con questo script controllo la configurazione di un pc, potendo intercambiare i singoli component e aggiornando automatcamente il prezzo. Il punto è che cambiando due o più componenti e poi tornando al prezzo base, il sistema si blocca! Perchè???
codice:
<script language="JavaScript">
// valore iniziale in euro
var valore_iniziale = <%=replace((formatnumber(rs_modello("prezzo_offerta"),2)),",",".")%>;
// totale iniziale
var totale = valore_iniziale;
// valuta
var valuta = "€"
var vecchio_valore_radio=0;
var mesi = <%=rs_modello("rate")%>
function modifica(check_box) {
if(totale>=valore_iniziale && check_box!="") {
document.all.prezzo.innerHTML = "";
valore = document.Form_Controllo_Prezzo[check_box].value;
if(document.Form_Controllo_Prezzo[check_box].checked == true) {
// somma se selezionato
totale = (Math.abs(totale)+Math.abs(valore));
} else {
// sottrazione se non è selezionato
totale = (Math.abs(totale)-Math.abs(valore));
}
}
// popolo lo span in base al totale modificato
if(document.all.prezzo) {
document.all.prezzo.innerHTML = (Math.round((totale)*100)/100+valuta).replace(/\./, ",");
}
if(document.all.prezzo_barra) {
document.all.prezzo_barra.innerHTML = (Math.round((totale)*100)/100+valuta).replace(/\./, ",");
}
if(document.all.prezzo_piede) {
document.all.prezzo_piede.innerHTML = (Math.round((totale)*100)/100+valuta).replace(/\./, ",");
}
if(document.all.rata) {
document.all.rata.innerHTML = Math.round(totale/mesi)+valuta;
}
if(document.all.rata_barra) {
document.all.rata_barra.innerHTML = Math.round(totale/mesi)+valuta;
}
if(document.all.rata_piede) {
document.all.rata_piede.innerHTML = Math.round(totale/mesi)+valuta;
} else {
return false;
}
}
// ciclo per verificare per aggiungere il valore del radio selezionato
// e sottrarre il vecchio valore selezionato uso: <input onclick("verifica_radio(this.name)")
var vecchio_valore_radio = 0;
function setta_vecchio_valore(nome_radio) {
for (i=0;i<document.Form_Controllo_Prezzo[nome_radio].length;i++){
if (document.Form_Controllo_Prezzo[nome_radio][i].checked==true) {
vecchio_valore_radio = document.Form_Controllo_Prezzo[nome_radio][i].value;
break
} else {
vecchio_valore_radio = 0;
}
}
}
function verifica_radio(nome_radio) {
for (i=0;i<document.Form_Controllo_Prezzo[nome_radio].length;i++){
if (document.Form_Controllo_Prezzo[nome_radio][i].checked==true && totale>=valore_iniziale) {
document.all.prezzo.innerHTML = "";
totale = (Math.abs(totale)-Math.abs(vecchio_valore_radio));
totale = (Math.abs(totale)+Math.abs(document.Form_Controllo_Prezzo[nome_radio][i].value));
//vecchio_valore_radio = document.Form_Controllo_Prezzo[nome_radio][i].value;
break
}
}
// popolo lo span in base al totale modificato
if(document.all.prezzo) {
document.all.prezzo.innerHTML = (Math.round((totale)*100)/100+valuta).replace(/\./, ",");
}
if(document.all.prezzo_barra) {
document.all.prezzo_barra.innerHTML = (Math.round((totale)*100)/100+valuta).replace(/\./, ",");
}
if(document.all.prezzo_piede) {
document.all.prezzo_piede.innerHTML = (Math.round((totale)*100)/100+valuta).replace(/\./, ",");
}
if(document.all.rata) {
document.all.rata.innerHTML = Math.round(totale/mesi)+valuta;
}
if(document.all.rata_barra) {
document.all.rata_barra.innerHTML = Math.round(totale/mesi)+valuta;
}
if(document.all.rata_piede) {
document.all.rata_piede.innerHTML = Math.round(totale/mesi)+valuta;
} else {
return false;
}
}
//-->
</script>
LA MIA PAGINA