Получение переменной из запроса jQuery GET - PullRequest
0 голосов
/ 13 мая 2011

Мне нужно получить переменную из запроса GET и использовать ее внутри функции.Это не работает.Вот мой код:

function chooseChosenOne() {

         $.get("generate.php", function(data) {
           var chosenOne = targetLocation[data.randomNumber];
         }, "json");

         alert(chosenOne);

       }

Как я могу это исправить?Как я могу использовать переменную selectedOne вне этой функции в запросе GET?

Ответы [ 3 ]

0 голосов
/ 13 мая 2011

Во время вызова alert(chosenOne); обратный вызов Ajax еще не выполнен. Ajax асинхронный . Функция chooseChosenOne не будет ждать окончания вызова Ajax, она немедленно вернется.

Вы можете работать только с возвращаемым значением в обратном вызове:

function chooseChosenOne() {
     $.get("generate.php", function(data) {
         var chosenOne = targetLocation[data.randomNumber];
         alert(chosenOne); 
     }, "json");
}

Итак, вам нужно сделать так, чтобы ваша функция принимала обратный вызов, который вызывается, как только доступно значение:

function chooseChosenOne(callback) {
     $.get("generate.php", function(data) {
         callback(targetLocation[data.randomNumber]);
     }, "json");
}

chooseChosenOne(function(theOne) {
   // now do stuff with theOne here
});

Смотри также:

0 голосов
/ 13 мая 2011

selectedOne существует только внутри вашей функции обратного вызова, и ваш код попадет в оповещение () до того, как обратный вызов даже запустится ...

function chooseChosenOne() {           
     $.get("generate.php", function(data) {            
                doSomethingWithChosenOne(targetLocation[data.randomNumber]);
               }, "json");
} 

function doSomethingWithChosenOne(v){
   alert(v);
}
0 голосов
/ 13 мая 2011

Вы должны использовать плагин jQuery getURLParam

value = $.getURLParam("paramName");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...