从ajax返回值的javascript函数

从ajax返回值的javascript函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,你能帮我解决这个问题吗。我想做一个函数,返回不同专业化的医生列表。。这是我的代码问题是这段代码doctorlist函数返回emtpy值。我的代码有什么问题。 你能帮我解决我的问题吗 $(document).ready(function () { $("#loaders").append("<center><img src='images/ajax-loader.gif'></center>"); doctorSpecialty(); });

你能帮我解决这个问题吗。我想做一个函数,返回不同专业化的医生列表。。这是我的代码问题是这段代码doctorlist函数返回emtpy值。我的代码有什么问题。 你能帮我解决我的问题吗

$(document).ready(function () {

   $("#loaders").append("<center><img src='images/ajax-loader.gif'></center>");
   doctorSpecialty();

});

function doctorSpecialty(){

   $.ajax({
      url: "http://localhost:8080/m-help/apps/json_special.php",
      dataType: 'json',
      async: true,
      success: function(data) {
         $("#list").empty();
         $.each(data.result, function(){ 
            var specialty = doctorList(this['specialization']);

             $("#list").append("<li><a href='doctor-special.html?special=" +this['specialization']+ "' style='padding-left:10px'>" +this['specialization']+ ""+specialty+"</a></li>");
             $("#loaders").fadeOut("fast");
          });
        }
   });
}

function doctorList(e){

   var specials = e;
   var retSpecial = "";
   $.ajax({
        url: "http://localhost:8080/m-help/apps/json_special-doctor.php?s="+specials,
        dataType: 'json',
        async: true,
        success: function(data) {
           $.each(data.result, function(){ 
            retSpecial = this['docFname'];  
           });
        }
    });
    return retSpecial;
}
$(文档).ready(函数(){
$(“#加载器”)。追加(“”);
博士专业();
});
函数doctorSpecialty(){
$.ajax({
url:“http://localhost:8080/m-help/apps/json_special.php“,
数据类型:“json”,
async:true,
成功:功能(数据){
$(“#列表”).empty();
$.each(data.result,function(){
var speciality=doctorList(这个['specialization']);
$(“#列表”)。追加(“
  • ”); $(“#加载程序”)。淡出(“快速”); }); } }); } 函数doctorList(e){ var-specials=e; var retSpecial=“”; $.ajax({ url:“http://localhost:8080/m-help/apps/json_special-doctor.php?s=“+specials, 数据类型:“json”, async:true, 成功:功能(数据){ $.each(data.result,function(){ retSpecial=此['docFname']; }); } }); 返回特别; }

    任何人都可以帮我修复此代码。第二个调用不能为async=true,因为循环将继续并使用答案(尚未到达)

    您应该使第二个异步:false


    在第二个调用中使用承诺,这将填充专门化,您需要在第一个ajax调用中取消DOM操作。

    请在发出请求后立即查看Jquery站点://分配处理程序,//并记住此请求的jqXHR对象var jqXHR=$.ajax(“example.php”).done(function(){alert(“success”);}).fail(function(){alert(“error”);}).always(function(){alert(“complete”);});//在此处执行其他工作……//为jqxhr上面的请求设置另一个完成函数。always(function(){alert(“second complete”);});有什么方法可以这样做吗?您的问题已标记为重复,请查看针对原始问题给出的解决方案,并查看它是否有帮助。我首先建议稍微清理一下您的代码:对第一个异步调用返回的每个结果进行第二个异步调用有点冗余和低效。为什么不进行一个调用来重新调用ns所有必需的数据?另外,$.each()实用程序函数需要一个带参数的回调。您正在尝试访问“this”,这可能意味着您不期望…我对ajax和javascript不熟悉..我该怎么做?您能帮我修复它吗?您能修复代码吗。。