如何在变量jquery中存储和接收数据

时间:2012-03-05 14:47:34

标签: jquery

如何使用jquery将远程php文件中的数据存储在变量中。 我使用

接收数据
 $.post("test.php", {query: ""+inputString+""}, function(data){
                alert(data);
            });
        }

它的工作原理我可以接收函数内部的数据(数据),但是我可以将数据放在一个变量中并在另一个函数中使用它,比如

 var data =  $.post("test.php", {query: ""+inputString+""});

7 个答案:

答案 0 :(得分:2)

你不能这样做,因为AJAX是异步的,这意味着结果仅在成功回调中可用,该回调可能比实际的$.post调用晚得多。因此,不要试图将结果存储到变量中,而是使用成功回调,这是使用AJAX请求结果来调用其他方法的唯一可靠位置,并对这些结果进行一些处理:

$.post("test.php", { query: inputString }, function(data) {
    someFunction(data);
});

答案 1 :(得分:1)

var myResult;
$.post('ajax/test.html', function(data) {
      myResult=data;
      $(body).trigger('myAjaxComplete')
});

但问题是,AJAX是异步的,所以你永远不知道AJAX何时完成。你可以触发上面的自定义事件并听取它。所以你会知道ajax已经完成,你肯定有数据:

$(body).on('myAjaxComplete',function(){
      //do whatever you like to do with your data
});

或者另一种方法是使用您的数据调用函数:

$.post('ajax/test.html', function(data) {
        myAjaxisDoneSoContinue(data);
});

答案 2 :(得分:0)

你应该把另一个函数用在回调函数中的data

答案 3 :(得分:0)

将其设置为变量。

var storedData;
$.post("test.php", {query: ""+inputString+""}, function(data){
                storedData = data;
            });
        }

答案 4 :(得分:0)

您需要在函数

之外定义变量
var backData = '';
$.post("test.php", {query: ""+inputString+""}, function(data){
    alert(data);
    backData = data;
});

然后你可以在其他函数中使用backData

答案 5 :(得分:0)

这里的问题是function (data)callback,它在事件上被调用(当数据被撤销时)。你看,javascript是异步语言,这意味着某些函数不是逐个调用,而是在某些事件上调用。您应该在回调函数中使用您的数据,并将所有依赖于它的逻辑放在回调中

$.post("test.php", {query: ""+inputString+""}, function(data){
            // manipulate date, call another functions, etc;
        });
    }

答案 6 :(得分:0)

创建一个全局变量,在这个变量中存储您收到的数据,在您的帖子构造之外的情况下

对于较大的项目,为每个变量或常量创建单独的脚本可能很有用,此脚本应与其他脚本包含在同一级别。这样,当您需要使用它们时,您已经定义了所有变量

同样的事情可以让常数将它们全部放在一个地方而不是通过项目浏览来找到它们