Проблема в доступе к измененному значению переменной вне блока if в коде JavaScript - PullRequest
0 голосов
/ 22 июня 2011
$("#submit").click(function(){
        var query=getquerystring() ; //get the query string entered by user
        // get the JSON response from solr server 
        var newquery=query;

    $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&json.wrf=?", function(result){
            //$.each(result.response.docs, function(result){

                if(result.response.numFound==0)
                {

                $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&spellcheck=true&json.wrf=?", function(result){


                    $.each(result.spellcheck.suggestions, function(i,item){
                        newquery=item.suggestion;

                    });

                });

                }

В приведенном выше javascript-коде переменная newquery изначально имеет значение query. но когда условие if истинно, его значение изменилось. но моя проблема в том, что я не получаю измененное значение за пределами блока if, пока я хочу это измененное значение как я могу это сделать.

Пожалуйста, ответьте.

EDIT

Могу ли я сделать это как:

   $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&json.wrf=?"
  {
  async:false
  }, 
function(result) {

1 Ответ

0 голосов
/ 22 июня 2011

Проблема в том, что $ .getJson является асинхронным.

См. Это: Как загрузить текстовый файл и сохранить его в виде строки в jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...