2014-03-03 65 views
-1

functions.js阿賈克斯返回值,但函數返回NULL

function clients(id){ 
    var result = ''; 
    $.ajax({ 
     type: "GET", 
     url: "classes/response.php?type=clients", 
     data: {id: id}, 
     success: function(data){ 
      result = data; 
      console.log(result); // retrieves 'John' 
      console.log(data); // retrieves 'John' 
     } 
    }); 
    return result; 
} 

而且我在其他文件main.js

$("#client_check").on('click', function(){ 

    var input = $("#client_id"); 
    var name = clients(input.val()); 

    console.log(name); // retrieves empty 

    $("#client_id").val(''); 

}); 

不應該工作的呢?該函數完美地輸出該值,但是當我將該函數調用到變量時,它將檢索爲空。

我在做什麼錯?

+0

你返回結果當Ajax調用仍然在運行 – fcalderan

+0

異步javascript和xml是異步的 – Quentin

+1

$ .ajax({async:false, – Triode

回答

0

試試這個,我只更改callback功能剩下的就是按照OP

function clients(id,callBack){ 
    $.ajax({ 
     type: "GET", 
     url: "classes/response.php?type=clients", 
     data: {id: id}, 
     success: function(data){ 
      result = data; 
      console.log(result); // retrieves 'John' 
      console.log(data); // retrieves 'John' 
      callBack(data); 
     } 
    }); 
} 


$("#client_check").on('click', function(){ 

    var input = $("#client_id"); 
    clients(input.val(),function(name){ 
     console.log(name); 
    }); 
    $("#client_id").val(''); 

}); 
+0

爲什麼Downvote它的測試代碼 – Amit