2つのデータを取得して比較するのに役立つ必要があります。ajax呼び出しからそれぞれ2つのオブジェクトを取得して比較する方法は?
私がここで作成しようとしているのは、グループを従業員と関連付けるシステムです。従業員の詳細ページにいる間、ユーザーにはポップアップを表示するボタンがあります。このポップアップには、従業員が関連付けることができるグループのリストがあります。リスト(ボタンセットとしてのチェックボックス入力のアレンジ)にすべてのグループが入力されたら、従業員が既に関連付けられている各グループをチェックして強調表示したいと思います。
私は、次のコードでこれを達成しようとしません(ただし、失敗)午前:私はAJAX呼び出しの中にAJAX呼び出しを行うことを前提と
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呼び出しによって返されるデータの2つのオブジェクトにアクセスする他の方法を知りません。
私は最初のものの成功の別のajax呼び出しがどのように問題であるかを見ていませんか?どのようなエラーがありますか? – RTulley
@RTully私はEmployeeGroupsが「未定義」として返ってきていましたが、GetGroupsPerEmployee ajax呼び出しが次のコードの残りの部分が実行される前に値を返したかどうかが関係していると思います。 – MarkieB