Pass the value of a Function post to another Function?

Asked

Viewed 434 times

-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.

2 answers

1


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

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, as an Undefined value is automatically assigned to it when created.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.