Ajax
for (j=0; j < cidade_nome.length; j++) {
$.post('envia.php', {ano:ano, ano2:ano2, cidade: cidade_nome[j].value}, fnRetorno);
}
Function fnRetorno
function fnRetorno(retorno)
{
teste.push(retorno);
console.log(j);
if (j == cidade_nome.length) {
soma(teste);
}
}
Full Code
function soma(teste)
{
console.log(JSON.parse(teste));
}
function fnRetorno(retorno)
{
teste.push(retorno);
console.log(j);
if (j==cidade_nome.length) {
soma(teste);
}
}
for (j=0;j<cidade_nome.length;j++) {
$.post('envia.php', {ano: ano, ano2: ano2, cidade: cidade_nome[j].value}, fnRetorno);
}
Because ajax is asynchronous, the fnRetorno
function calls the sum function, before the last ajax result is placed in the teste
array.
Would there be any way to ensure that the test function sum would only be called after ajax runs every time through the loop?