1
function getReportGroups() {
    $.ajax({
        contentType: "application/json; charset=utf-8",
        url: "ReportGroups.ashx",
        data: {
            'method': 'getReportGroups',
            'projectId': '30390'
        },
        dataType: "json",
        success: function (data) {
            alert('inside success');
            var i = 0;
            groupName = [data[i].name];
            while (data[i] != null) {
                alert([data[i].name]);
                alert([data[i].reportGroupId]);
                $("#top-node").append("<li item-checked='true' item-expanded='true'><a href=# style=font-weight:bold>" + [data[i].name] + "</a>");
                i++;
                var id = [data[i].reportGroupId];
                getReports(id);
            }

        },
        error: function (result) {
            alert("Error- Inside the error loop");
        }

    });
}

function getReports(id) {
    $.ajax({
        contentType: "application/json; charset=utf-8",
        url: "ReportGroups.ashx",
        data: {
            'method': 'getReports',
            'reportGroupId': id
        },
        dataType: "json",
        success: function (data) {
            alert('inside getReports success');
            var i = 0;
            groupName = [data[i].name];
            while (data[i] != null) {
                alert([data[i].name]);
                i++;
            }
        },
        error: function (result) {
            alert("Error- Inside the error loop");
        }
    });
}

这是我的代码。在这里,当我使用参数 id 从 getReportGroups() 调用 getReports(id) 时,id 在 getReoprts() 函数中作为零传递。我不知道有什么问题。我使用一个警告框来检查第一个中是否存在“id”,它确实存在。我在 getReportsFunction 中有一个有效的 Id。但我在第二个中将 id 设为零。我在这里做错了什么?

4

2 回答 2

0

看起来你i在调用之前递增var id = data[i].reportGroupId,在第一次迭代时测试值 ( alert([data[i].reportGroupId]);)。

作为 while 循环的最后一条语句移动i++,看看这是否能解决您的问题。

于 2013-06-12T05:28:04.007 回答
0

问题看起来像i++,您可以使用 .each() 来遍历数据

$.each(data, function(idx, item){
    alert(item.name);
    alert([item.reportGroupId]);
    $("#top-node").append("<li item-checked='true' item-expanded='true'><a href=# style=font-weight:bold>" + [item.name] + "</a>");
    var id = [item.reportGroupId];
    getReports(id);

})
于 2013-06-12T05:34:54.593 回答