2016-11-07 1 views
0

私は同様の質問を投稿しましたが、スタックのオーバーフローが早く死んでしまうので、私は答えを得られなかったようです。jqueryの成功から変数を渡す

時には私のコードに書かれていない限り、私はものを理解できません。人々は物事を本当にひどく説明する傾向があります。例:How do I return the response from an asynchronous call?

最初の答えで、彼はコードを再構成する方法を説明します。しかし、彼はステップを正しく説明していません。彼はコールバックが何であるか、結果が何であるか説明しません。彼はちょうどそこにそれらを投げる。私は彼がそれを行う方法について複数の例を挙げていると仮定していますが、彼は何を使うべきか説明していません。

次は私がもともと持っていた私のコードです:

var admin_data = false; 
function getPlayerAdmin(admin_data){ 
    var formData = { 
     'player_id' : $('#post-v').attr('data-val') 
    }; 
    $.ajax({ 
     type: 'post', 
     url: '/popins/player/controls', 
     data : formData, 
     dataType : 'json', 
     success: function(admin_data_vals, admin_data) { 
      if(admin_data_vals.controls.is_admin == true){ 
       admin_data = true; 
      }else{ 
       admin_data = false; 
      } 
     }, 
     error : function(jqXHR, textStatus, errorThrown){ 
      console.log(jqXHR); 
     } 
    }); 
} 

getPlayerAdmin(); 
alert(admin_data); 

を次は私が彼の...例に基づいて再構築しようとしたものです:

var admin_data = false; 

var result = getPlayerAdmin(); 

getPlayerAdmin(function(result) { 
    if(admin_data_vals.controls.is_admin == true){ 
     admin_data = true; 
    }else{ 
     admin_data = false; 
    } 
}); 

function getPlayerAdmin(callback){ 
    var formData = { 
     'player_id' : $('#post-v').attr('data-val') 
    }; 
    $.ajax({ 
     type: 'post', 
     url: '/popins/player/controls', 
     data : formData, 
     dataType : 'json', 
     success: function(admin_data_vals, callback) { 

     }, 
     error : function(jqXHR, textStatus, errorThrown){ 
      console.log(jqXHR); 
     } 
    }); 
} 

getPlayerAdmin(); 
alert(admin_data); 

私が取得しようとしています私は別の関数でそれを使うことができるように、ここからの変数です。

私はとても混乱していますので、大歓迎です。

+0

コールバック関数に 'alert(admin_data);'を置いてそこから使用したいとします。あなたの成功関数を変更する: '成功:関数(データ){コールバック(データ)} ' – nicovank

+0

コールバック関数は何ですか? –

+0

コールバック関数は、成功すると呼び出されるパラメータとして渡す関数です。 – nicovank

答えて

0

あなたは学校や職場にいる人もいるし、人の質問に答えている日もないことを理解しておく必要があります。グーグルで文書を勉強しても簡単に答えられます。とにかく

は、ここでのコードの完全にコメント作品だ:

function getData(callback) { // You pass a callback function as a parameter 
    var formData = { 
     'player_id' : $('#post-v').attr('data-val') 
    }; 
    $.ajax({ 
     type: 'post', 
     url: '/popins/player/controls', 
     data : formData, 
     dataType : 'json', // data passed in the success function will going to be parsed if you specify the `dataType`. 
     success: function(data) { 
      // on success, you call the callback function, passing the data you just got 
      callback(data); 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      // on error, just log the error. 
      console.log(errorThrown); 
     } 
    }); 
} 

getData(function(data) { // You are calling the `getData` function, passing another function as a parameter, which is going to get called on success 

    // This will log the object that you asked your server for. 
    console.log(data); 
}); 

機能getDataは、データ用のサーバーを照会して、あなたがこのような場合、匿名関数の中で、パラメータとして渡している関数を呼び出します。あなたが任意のより多くの質問がある場合

function analyseData(data) { 
    console.log(data); 
} 
getData(analyseData); 

今、それらを求めるが、敬意てください: あなたは簡単ただ、基本的には、1つの以上のステップをやって、このようなgetDataを呼び出すことができます。あなたの従業員や先生がここにどのように働いているのかを説明する人はいません。あなたは自分でいくつかの研究をすべきです。 このノートでは、素敵な夜をお過ごしください!

関連する問題