Возникают проблемы при возврате переменной с помощью jquery - PullRequest
0 голосов
/ 02 октября 2011

Я не знаю, почему этот код не работает: S

function check(){
  var haySaldo=false;
  $.post("controlarSaldo.php", function(data)

 {  
        if(data>0)
          haySaldo=true;
  });

   return haySaldo;
}

Информация:

data = 1000

Я помещаю предупреждение о haySaldo в jquery и получаю"правда", но за пределами jquery я получаю "ложь": S

Заранее большое спасибо!

Ответы [ 2 ]

0 голосов
/ 02 октября 2011

Извините, если вы уже понимаете это, но этот метод jQuery post является сокращением для запросов AJAX, что означает, что ваш код не будет ждать завершения запроса AJAX, прежде чем вернуть значение haySaldo (как вы его написали) .

Немного неясно, что вы собираетесь делать, вызывая return изнутри метода успеха. Возможно, если бы вы предоставили немного больше информации, люди могли бы предложить лучшие предложения.

Одна вещь, которую вы, возможно, захотите проверить, это отложенные объекты jQuery . Это позволит вам сделать что-то вроде этого.

function check(){
  return $.post("controlarSaldo.php").success(function(data)
    {  
    if(data>0)
      return true;
    else
      return false;
    });
}

Затем в вашем коде вы можете сделать это (не проверено).

check().done(function(resp){ 
  if(resp){
    // Do true thing
  }
  else{
    // Do false thing
  }
}); 
0 голосов
/ 02 октября 2011

Похоже, ваш оператор return находится за пределами вашей функции.

Попробуйте это

$.post("controlarSaldo.php", function(data){   
    var haySaldo=false;    
    if(data>0){
        haySaldo=true;
    }
    return haySaldo;
});
...