The variable situa
exists only in the scope of the function that is executed in the return of the post. If it were necessary to move to another function this variable would have to be declared globally, but even so its assignment would have to wait for the ajax to return with something.
I did an example test to exemplify:
index.php
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>variavelglobal="";
$(function()
{
$("#botao").click(function()
{
//alert( $("#campo").val() );
$.post(
"paginateste.php",
{ dado: $("#campo").val() },
function(data)
{
if(data==1)
{
situa = 'você foi selecionado';
}
else
{
situa = 'você não foi selecionado';
}
//alert(situa); // aqui funcionaria ok desde o início
variavelglobal = situa; // passando valor pra variavel global
}
);
//essa execução pode ocorrer antes do ajax post ter terminado,
// esse atraso de 100 microsegundos é proposital pra não dar alert em branco com valor vazio
window.setTimeout
(
function()
{
alert(variavelglobal);
},
100
);
});
});
</script>
<input type="text" name="campo" id="campo" />
<input type="button" value="Enviar" id="botao">
paginateste.php
1