$.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) { $.ajax({ url: "http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&spellcheck=true&json.wrf=?", async:false, success: function(result){ $.each(result.spellcheck.suggestions, function(i,item){ newquery=item.suggestion; }); } }); }
我得到我必须使ajax调用异步的问题。所以我确实喜欢上面的代码,但仍然无法在if块之外获取更新的newquery。它仍然显示newquery的旧值。请建议我在哪里做错了
编辑
$(document).ready(function(){ // This function get the search results from Solr server $("#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) { $.ajax({ url: "http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&spellcheck=true&json.wrf=?", async:false, dataType: 'json', success: function(json){ $.each(json.spellcheck.suggestions, function(i,item){ newquery=item.suggestion; }); } }); } $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=20&q="+newquery+"&sort=price asc&hl=true&hl.fl=description&hl.usePhraseHighlighter=true&json.wrf=?", function(result){
现在,如果result.response.numFound == 0,我想在$getjosn()中使用此更新的newquery,否则newquery将保留旧值
试试这个:
$(document).ready(function(){ // This function get the search results from Solr server $("#submit").click(function(){ var query=getquerystring() ; //get the query string entered by user 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){ if(result.response.numFound==0) { $.ajax({ url: "http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=100&q="+query+"&spellcheck=true&json.wrf=?", async:false, dataType: 'json', success: function(json){ $.each(json.spellcheck.suggestions, function(i,item){ newquery=item.suggestion; }); $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=20&q="+newquery+"&sort=price asc&hl=true&hl.fl=description&hl.usePhraseHighlighter=true&json.wrf=?", function(result){ } }); } }else{ $.getJSON("http://192.168.1.9:8983/solr/db/select/?wt=json&&start=0&rows=20&q="+newquery+"&sort=price asc&hl=true&hl.fl=description&hl.usePhraseHighlighter=true&json.wrf=?", function(result){ }