Ciao a tutti, ho un problema con questa funzione del mio carrello:

<td width="100">
<INPUT name="button2" alt="Clicca su Aggiorna per salvare le modifiche" type=button onclick="javascript: populateSubSelection('nr<? echo $key;?>','nr<? echo $key;?>',-1,'totale<? echo $key;?>',<? echo $row[12];?>,<? echo $row[14];?>,<? echo $row[15];?>,<? echo count($_SESSION[carrello]);?>, 'tot'); " value=->

<input id="nr<? echo $key;?>" readonly type="text" size="4" maxlength="5" value="<? echo $nr_prod;?>">
<input name="button" type=button onClick="javascript: populateSubSelection('nr<? echo $key;?>','nr<? echo $key;?>',1,'totale<? echo $key;?>',<? echo $row[12];?>,<? echo $row[14];?>,<? echo $row[15];?>,<? echo count($_SESSION[carrello]);?>, 'tot'); " value=+>
</td>

---------------------------------------------------------------------------------------
Cliccando sul pulsante + parte il seguente codice javascript:



function populateSubSelection(i,id,delta,id2,prezzo_uni,sco nto1,sconto2,k,output){
//Recupero i dati da inviare
var mainSelection = document.getElementById(i);
//Creo un nuovo oggetto XMLHTTPRequest
var req = newXMLHttpRequest();

//Invio la richiesta
req.open("POST", "vis_ordine.php", true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

//Invio i dati POST
req.send(i+"=" + mainSelection.value);
//Gestore dell'evoluzione dello stato dell'oggetto req
req.onreadystatechange = handleResponse(req,id,delta,id2,prezzo_uni,sconto1 ,sconto2,k,output);
}



Qui viene fatta una richiesta ad una pagina php per aggiornare una variabile di sessione dove è contenuto il valore della quantità del prodotto
-------------------------------------------------------------------------------


function newXMLHttpRequest(){
var xmlreq = false;

//Controllo il tipo di oggetto XMLHttpRequest da utilizzare
if(window.XMLHttpRequest){
//Per browser non Microsoft
xmlreq = new XMLHttpRequest();
}else if(window.ActiveXObject){
//Cerco di creare l'oggetto via MS ActiveX
try{
//Nuove versioni per browser IE
xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e1){ //Errore riscontrato durante la creazione dell'oggetto
try{
//Precedenti versioni per browser IE
xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){ //Nuovo errore durante la creazione dell'oggetto
xmlreq = false;
}
}
}
//Restituisco l'eventuale oggetto XMLHttpRequest
return xmlreq;
}
/*

*/


---------------------------------------------------------------------------------------
Penso che il problema si trovi qui:

function handleResponse(req,id,delta,id2,prezzo_uni,sconto1 ,sconto2,k,output){
return function(){
//Controllo se l'oggetto req ha raggiunto lo stato finale
if(req.readystate == 4){
//Inoltre accertiamoci di aver ottenuto il messaggio 200 dal server,
if (req.status == 200){
//A questo punto richiamo la funzione che gestira' il risultato XML
//XMLHandler(req.responseXML);
cambia_quantita(id,delta,id2,prezzo_uni,sconto1,sc onto2);
totale(k,output);

}else{
alert("Errore HTTP: " + req.status);
}
}
}
}


Il problema è il seguente:
Facendo un reload della pagina, la quantità del prodotto presente nel carrello, ritorna alla quantità di partenza. Quindi la variabile di sessione non viene aggiornata correttamente.
Spero che qualcuno mi aiuti.