如何使用帖子返回的数据(jquery)

时间:2016-12-16 15:58:15

标签: jquery

引用的重复问题告诉我们如何使用ajax / post调用。我的问题是如何使用匿名函数返回的数据。

我正在使用jquery POST方法从mysql中获取一些数据。电话是:

<div class="item" ng-repeat="item in itemList">
    <input type="checkbox" ng-model="item.checked" ng-change="itemChange(user)">
    <label>{{item.name}}</label>
</div>

这工作正常,我得到了我需要的数组,qdata。

所以,如果我执行以下操作,我可以访问qdata:

$scope.itemChange = function(user){
   var selectedCarsIds = $scope.itemList.filter((i) => i.checked).map(item => item.id)
   //update cars array for specific user
   user.cars = selectedCarsIds;
}

qdata是一个包含140行的二维数组,其值均为

但如果我尝试在之外使用qdata 这篇文章,qdata会显示为'undefined'。例如

$.post("/php/practice.php",{cat:catname}, function(xdata) {
    qdata=JSON.parse(xdata);
});

如果我将警报放在电话会议之外,我什么也得不到。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的问题是qdata仅存在于您的函数范围内。

在函数

之外设置qdata变量

var qdata

$.post("/php/practice.php",{cat:catname}, function(xdata) {
        qdata=JSON.parse(xdata);
});

或者让我们说你想把这些数据传递给另一个用它来做某事的函数。你可以这样做:

$.post("/php/practice.php",{cat:catname}, function(xdata) {
        qdata=JSON.parse(xdata);
        myFunction(qdata);
});

function myFunction(data){
 alert(data[0]);
}