Pass the value of a function post to another function?

-1
 $(function(){
 $("#for").submit(function() {

    var situa = null;
    $.post("url", {dado: "campo"}, function(val) {

      if(val == 1){

       situa = 'você não foi selecionado';

           }else{

      situa = 'você foi selecionado';}



        });




   alert(situa);


    });
        });

Unfortunately the value is returning null.

    
asked by anonymous 23.02.2017 / 15:53

2 answers

1

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
    
23.02.2017 / 17:15
0
 $.post("url", {dado: "campo"}).done(function(val) {
     var situa;
      if(val == 1){
       situa = 'você não foi selecionado';
           }else{
      situa = 'você foi selecionado';}
        });

   alert(situa);
)};

It is not advisable to use a NULL assignment when declaring a variable in JS, since it is automatically assigned an Undefined value for it when created.

    
24.02.2017 / 15:30