2012-05-01 2 views
1

, если у меня есть две функции, которые были вызваны из AJAX и я хочу, чтобы передать то, что когда-либо первая функция возврата к переменной в другой и использовать его только один раз только один разпередавая переменную между функциями

код ниже петли с returnResult() функции $ .each() и некоторые из данных JSON отсутствуют, как нет никакого текста в «Лабы»: {}

$.ajax({ 
      type: "POST", 
      url: "WebService.asmx/MyEventData", 
      data: "{}", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      success: function(data) { 
      returnResult(data.d); 
     } 

     }); 

     $.ajax({ 
      type: "POST", 
      url: "WebService.asmx/Getlines", 
      data: "{}", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      success: function(data) { 
       lineReturn(data.d); 
      } 

     }); 



     }); 

     function lineReturn(result) { 
     var jsonObj = [] ; 
     $.each(result, function(index, value) { 
     jsonObj.push({ "value": value.dateTime, "color": '#D2691E', "width": 1, "label": { "text": value.LineEvent} }); 
     }); 
     return JSON.stringify(jsonObj) ; << this is the return that should go to myline variable and be used on the highchart >>>> 

    } 

     function returnResult(result) { 
     console.log(result) ; 
     var myLine = lineReturn(result) ; 
     var datetemp = new Array ; 
     var dateflow = new Array ; 
     var datepressure = new Array; 
     var datecond = new Array ; 

ответ

2

Попробуйте положить 2-й АЯКС вызов в обратный вызов 1-го.

$.ajax({ 
     type: "POST", 
     url: "WebService.asmx/Getlines", 
     data: "{}", 
     dataType: "json", 
     contentType: "application/json; charset=utf-8", 
     success: function(dataA) { 
      $.ajax({ 
       type: "POST", 
       url: "WebService.asmx/MyEventData", 
       data: "{}", 
       dataType: "json", 
       contentType: "application/json; charset=utf-8", 
       success: function(dataB) { 
        // From here you can access both dataA.d and dataB.d 
        var myLineA = lineReturn(dataA.d); 
        var myLineB = lineReturn(dataB.d); 
       } 
      }); 
     } 
}); 
+0

ОК, я могу во второй sucess добавить функцию, подобную этой функции dosomething (dataA.d, dataB.d) {then $ .each (dataA .... then $ .each (dataB ...... is thats possible –

+0

@MinaGabriel: Это должно сработать. Во втором успехе вы можете получить доступ как к 'dataA', так и к' dataB'. –

+0

, которые много объясняют спасибо –

1

У вас может быть вторая функция на .success первой функции.

Смежные вопросы