Buongiorno! Sto implementando una pagina per la creazione di "fatture". Ho una tabella con una serie di checkbox, una per ogni pratica "potenzialmente fatturabile".. Una volta che l'operatore ha selezionato tutte le righe che gl'interessano una funzione JavaScript tramite ciclo manda ad una pagina php (tramite ajax) il codice rispettivo della riga la quale ritorna un valore che potrà essere 1, 0.5 o 0.
Man mano dovrebbe esservi una variabile (punti) che partendo da 0 viene incrementata.. Infine in base a quel valore andranno ad auto-compilarsi due input di un form.
Il problema è che, malgrado tramite controlli il valore restituito sia corretto e coerente, la variabile "punti" che andrebbe man mano incrementata con quei valori rimane sempre a 0
Di seguito riporto il codice della funzione JS:
codice:
function calcolaBonus(){
var tabella=document.getElementById("tabellaProvvigioni"); //tabella con checkbox
var tagCheck=tabella.getElementsByTagName("input","checkbox");
var punti=0.0; //variabile incrementale
var bonusProduzione,bonusTrainer; //futuri valori form-input
for(var i=0;i<tagCheck.length;i++){
if(tagCheck[i].checked==true){//considero solo le checkbox selezionate
console.log(i+": "+punti);//Per controllo
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
if(this.responseText=="1"){
alert("1");//Per controllo
punti=punti+1;
}
if(this.responseText=="0.5"){
alert("0.5");//Per controllo
punti=punti+0.5;
}
}
};
var link="../../ajax/punteggioPod.php?idFornitura=" + tagCheck[i].id; //pagina php che interroga il server e restituisce un valore pari a :0/0.5/1
xmlhttp.open("GET", link, true);
xmlhttp.send();
}
}
if(punti<20)
bonusProduzione=punti*17;
else if(punti<30)//20
bonusProduzione=400;
else if(punti<40)//30
bonusProduzione=500;
else if(punti<50)//40
bonusProduzione=750;
else if(punti<60)//50
bonusProduzione=950;
else if(punti<80)//60
bonusProduzione=1200;
else if(punti>=80)//80
bonusProduzione=1600;
if(punti<30)
bonusTrainer=0;
else
bonusTrainer=100;
document.getElementById("formProd").value=bonusProduzione;
document.getElementById("formTrainer").value=bonusTrainer;
}
Malgrado anche tramite gli alert aggiunti per controllo ho la certezza che il valore restituito sia corretto l'unica opzione che mi rimane da pensare è che il problema sia nell'istruzione: