Ho una funzione JS che fa una chiamata AJAX ad un file PHP. La chiamata viene fatta più volte, ed ogni volta ho la necessità che, all'interno della funzione precedente, venga incrementato un valore.
Riporto il JS, così sarà più chiaro quello che dirò di seguito.
Codice PHP:
var numero 1;
function 
incrementa() {
    
numero numero++;
}
// request ajax
function createRequestObject() { 
var 
ro
var 
browser navigator.appName
if (
browser == "Microsoft Internet Explorer") { 
ro = new ActiveXObject("Microsoft.XMLHTTP"); 
} else { 
ro = new XMLHttpRequest(); 

return 
ro

var 
http createRequestObject();
function 
sndReq(action) { 
http.open('get''loadata.php?action='+action); 
http.onreadystatechange handleResponse
http.send(null);

function 
handleResponse() { 
if (
http.readyState == 4) { 
var 
response http.responseText
document.getElementById("newload"+numero).innerHTML response;
    } 
}
function 
handleResponse() {
if (
http.readyState == 4) {
var 
response http.responseText;
var 
el=document.getElementById("newload"+numero);
el.innerHTML response;
    }

Da questa prima parte, si vede che:
- i dati richiamati via AJAX vengono caricati in un elemento il cui ID è costituito dalla parola newload e da un numero progressivo.
- c'è una funzione che dovrebbe incrementare la variabile numero
In pratica, io parto con un elemento con ID=newload1, dentro il quale carico dei dati via AJAX/PHP. I dati che mi arrivano via PHP costruiscono in coda al testo un nuovo elemento, con ID=newload2.
Poichè quando chiamo la funzione sndReq() chiamo contestualmente anche la funzione incrementa(), mi aspetterei che la variabile numero assumesse il valore 2, e quindi, alla successiva chiamata AJAX, i dati venissero caricati nell'elemento con ID=newload2
Invece, mentre viene correttamente creato l'elemento con id 2, la variabile numero non viene incrementata, e quindi la successiva chiamata AJAX viene fatta indirizzando i dati sempre all'elemento con id 1.
Tra l'altro, poichè anche per la funzione sndReq() ho bisogno di incrementare il valore, io faccio così:
Codice PHP:
sndReq('step'+numero); 
Ma ovviamente continua a mandarmi come valore step1, e perciò ricaricando sempre gli stessi dati!...
Come posso risolvere???