如何保存ajax查询中的数据并将其作为参数传递给另一个函数?

时间:2017-09-25 14:37:05

标签: jquery asynchronous

我有这个功能:

function getValues(name) {
    $.ajax({
        url: "file_name.php",
        type: "GET",
        data: {
            'product': name,
            'query': 'get_values'
        },
        dataType: "html",
        success: function(data){ 



        }
    });  
}

我希望提取数据并将其用作另一个函数中的参数。如何使用JQuery?

3 个答案:

答案 0 :(得分:0)

您可以使用解决方案

var responseData;
function getValues(name) {
  $.ajax({
    url: "file_name.php",
    type: "GET",
    data: {
      'product': name,
      'query': 'get_values'
    },
    dataType: "html",
    success: function(data){ 
      responseData = data;
    }
  });  
}


function getValues2(){
  //Here you can use the data from first ajax call
 console.log(responseData);
}

我使用了一个可以通过该方法访问的变量。

通过传递参数

的另一种方法
function getValues(name) {
  $.ajax({
    url: "file_name.php",
    type: "GET",
    data: {
      'product': name,
      'query': 'get_values'
    },
    dataType: "html",
    success: function(data){ 
      getValues2(data);
    }
  });  
}


function getValues2(data){
  //Here you can use the data from first ajax call
  console.log(data);
 }

希望这会对你有所帮助。

答案 1 :(得分:0)

你可以这样做

//define var outside function.
var myData;

function getValues(name) {
  $.ajax({
    url: "file_name.php",
    type: "GET",
    data: {
      'product': name,
      'query': 'get_values'
    },
    dataType: "html",
    success: function(data) {
     //save data to variable
     myData = data;
    }
  });
}

然后你可以使用它......

function foo() {
 //do something with
 myData;
}

或在你的ajax中执行此操作

success: function(data) {
 fooBar(data);
}

function fooBar(data) {
 //do something...
}

答案 2 :(得分:0)

是的,有可能。好的做法是使另一个http呼叫处于完整状态。 试试这个

var dataToPost="";

$.ajax({ 
 url: "file_name.php",
 type: "GET", 
 data: { 'product': name, 'query': 'get_values' },
  type: "GET",
  success: function(data){
  dataToPost = data; 
   }, 
  complete:function(){
     var a=dataToPost; 
     $.ajax({ 
     type: "post",
      url: "example.php", 
     data: 'page='+a, 
     success: function(data){
       /*do some thing in second function*/
      } }, 
});