2017-06-15 10 views
0

をループからのデータにIDを割り当てる必要があります(このエンドポイントはで最初からIDが必要です私は2つのエンドポイントで働いていますAJAX呼び出し

  1. ロケーションIDのリスト
  2. 場所特定情報end)

第2のエンドポイントには位置IDは含まれていませんが、位置情報の一部である必要があります。私は何とか位置情報にIDを注入すると思ったが、私は立ち往生している。

私は、ロケーションIDを取得するための呼び出しを行います。

はここ
ar settings1 = { 
    "async": true, 
    "crossDomain": true, 
    "url": "wss_api/wss_api.php?method=hello&format=json", 
    "dataType": "json", 
    "method": "GET" 
}; 

var a1 = $.ajax(settings1); 

var en = []; 

var rt = []; 

$.when(a1).done(function(d1) { 

    var d1p = JSON.parse(d1.data); 

    $.each(d1p.Entities, function(i, id) { 

     en.push({entity:id, url:"http://localhost/api_test/wss_api/locationdata.php?method=hello&format=json&entity=" + id}); 

    }); 

    makeMerge(en, d1p); 

}); 

私は、IDとURL(末尾のID)に「EN」を含むオブジェクトを押してください。私はパラメータとして "en"と "d2"を使ってmakeMerge関数を起動します。

makeMerge関数では、私はajax呼び出しのための関数を持っており、forループはurlとidを持つ関数を "rt"にプッシュします。

function makeMerge(en_urls, en_id) { 

    function LocationData(d2, d3) { 

     return $.ajax({ 
      "async": true, 
      "crossDomain": true, 
      "dataType": "json", 
      "url": d2, 
      "method": "GET" 
     }); 
    } 

    for (url in en_urls) { 
     rt.push(LocationData(en_urls[url].url, en_urls[url].entity)); 
    } 

    $.when.apply(this, rt).done(function() { 

     var ld = []; 

     for (var i = 0; i < arguments.length; i++) { 

     }); 

    }); 

次に、私はajax呼び出しを実行します。

問題は、idが最初のajax呼び出し(d1p.Entities)から、makeMerge関数のforloop(en_urls [url] .entity)へのidとurl(en)を含むオブジェクトに、 LocationData関数(d3)を呼び出して停止します。

AJAX呼び出しが発射されると、現在使用中のIDが移動する前に割り当てられるようLocationData機能で行う必要があり、私はそれに対応するURLで取得したデータにIDを割り当てたい、と論理的には、このように縫い目次のものへ。注文が乱されていないことを確認する最良の方法です(データに間違ったIDが割り当てられています)。

誰も解決策を考えることはできますか?

答えて

0

私はforループを使用しています。私の引数forループの内部では、そのループがidsをループし、そのインデックスが引数のインデックスと一致する場合にidを割り当てます。

$.when.apply(this, rt).done(function() { 

     var ld = []; 

     for (var i = 0; i < arguments.length; i++) { 

      datap = $.parseJSON(arguments[i][0].data);  

      for (url in en_urls) { 

       if (url == i) { 

        datap.Location["Entity"] = en_urls[url].entity; 

       } 

      }; 

      values = datap.Location; 

      ld.push(values); 

     }; 
関連する問題