我需要帮助获取两个数据并进行比较。
我在这里想要创建的是一个用于将群组与员工相关联的系统。在员工的详细信息页面上,用户有一个显示弹出窗口的按钮。在此弹出窗口中,有一个员工可以关联的组列表。列表(复选框输入排列为按钮组)将填充所有组,然后我希望将每个与该员工关联的组进行检查,以便突出显示。
我正在尝试使用以下代码完成此操作(但失败):
function loadAllGroups() {
var iGroupID;
var iGroupName;
$.ajax({
type: 'POST',
url: '../Processes/process_Groups.aspx/GetGroups',
contentType: 'application/json; charset=utf-8',
data: '{}',
dataType: 'json',
success: function (aData) {
var AllGroups = aData.d;
var EmployeeGroups;
$.ajax({
type: 'POST',
url: '../Processes/process_Groups.aspx/GetGroupsPerEmployee',
contentType: 'application/json; charset=utf-8',
data: '{EmployeeID: ' + EmployeeID + '}',
dataType: 'json',
success:
function (eData) {
EmployeeGroups = eData.d;
},
error:
function (jqXHR, textStatus, errorThrown) { errorBox.append(jqXHR.responseText); }
});
$.each(AllGroups, function (aIndex, aGroup) {
var iChecked = '';
$.each(aGroup, function (aKey, aVal) {
if (aKey == 'GroupID') { iGroupID = aVal }
if (aKey == 'GroupName') { iGroupName = aVal }
});
$.each(EmployeeGroups, function (eIndex, eGroup) {
$.each(eGroup, function (eKey, eVal) {
if (eKey == 'GroupID') {
if (iGroupID == eVal) { iChecked = 'checked="checked"' } else { iChecked = '' }
}
});
});
GroupsList.append('<input type="checkbox" id="Group_' + iGroupID + '" value="' + iGroupID + '" ' + iChecked + ' /><label for="Group_' + iGroupID + '">' + iGroupName + '</label>');
});
GroupsList.buttonsetv();
},
error:
function (jqXHR, textStatus, errorThrown) { errorBox.append(jqXHR.responseText); }
});
}
我假设在ajax调用中进行ajax调用是No-No。我只是不知道如何访问每个ajax调用返回的两个数据对象,以便比较它们。
答案 0 :(得分:1)
只需将内部ajax调用和'EmployeeGroups'变量移出第一个ajax调用,并在第一个变量声明后将其置于顶部。这应该仍然可以实现相同,只是没有令人讨厌的ajax开始。