The variable situa
only exists in the scope of the function that is executed at post return. If it was essential to pass to another function this variable would have to be declared globally, but even so its assignment would have to wait for ajax to return with something.
I made an example test to illustrate:
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