2016-04-03 11 views
0

私はajaxのRequetteからデータを回復します。このデータを関数内で使用して返したいが、関数を呼び出すと何も返されない。Ajaxリクエストからのデータ返信

function getdata(nom_produit) { 

    $.ajax({ 
     type: "POST", 
     url: "traitement/panne/test_panne.php", 
     data: { 
      nom_produit: nom_produit 
     }, 

     success: function(data) { 
      var obj = jQuery.parseJSON(data); 

      jQuery.each(obj["resultat"], function(index, value) { 

      }) 
     } 
    }); 
    return obj; 
} 

データを返す方法は?

+1

以下のような何かを行うことができ、この関数を呼び出しているところから。 '$ .ajax'は非同期呼び出しなので、結果が' success'と呼ばれても関数はまだ実行を保留中です – S4beR

答えて

0

このように返品することはできません。 $.ajaxは非同期呼び出しなので、returnが呼び出されたときにsuccess関数がまだ実行を保留中です。同じ結果を達成するために、以下のようなことをすることができます。

function getdata(nom_produit, callback) { 

    $.ajax({ 
     type: "POST", 
     url: "traitement/panne/test_panne.php", 
     data: { 
      nom_produit: nom_produit 
     }, 

     success: callback 
    }); 
} 

、あなたは、あなたがこのように戻ることはできません

var successFunction = function(data) { 
    hideOverlay(); // hide overlay once response is there 

    // your code to process data and show in UI 
} 

showOverlay(); // code to show loading image in UI till response comes 
getData(someId, successFunction); 
関連する問題