Javascript 正在尝试使用SPServices为用户获取组列表 我遇到了这个代码,我正试图在SP 2010基金会中使用它。当我加载页面时,我得到一个错误,说“找不到用户”。我正在使用jquery1.10.X和最新的SPServices版本。我想这和“userLoginName”有关,但我很难弄清楚 $(document).ready(function() { //Populate the users pick list var strHTMLSiteUsers = ""; $().SPServices({ operation: "GetUserCollectionFromSite", async: false, completefunc: function(xData, Status) { $(xData.responseXML).find("User").each(function() { strHTMLSiteUsers += "<option value='" + $(this).attr("LoginName") + "'>" + $(this).attr("Name") + "</option>"; }); $("#my_SiteUsers").append(strHTMLSiteUsers); } }); RefreshGroupLists(); }); function RefreshGroupLists(){ var strHTMLAvailable = ""; var strHTMLAssigned = ""; var arrOptionsAssigned = new Array(); var intOpts = 0; var booMatch; var booErr = "false"; $("#my_SPGroupsAssigned").html(""); $("#my_SPGroupsAvailable").html(""); if($("#my_SiteUsers").attr("value") == 0){ alert("You must select a user"); return; } //Populate the Groups Assigned $().SPServices({ operation: "GetGroupCollectionFromUser", userLoginName: $("#my_SiteUsers").attr("value"), async: false, completefunc: function(xData, Status) { $(xData.responseXML).find("errorstring").each(function() { alert("User not found"); booErr = "true"; return; }); $(xData.responseXML).find("Group").each(function() { strHTMLAvailable += "<option value='" + $(this).attr("Name") + "'>" + $(this).attr("Name") + "</option>"; arrOptionsAssigned[intOpts] = $(this).attr("Name"); intOpts = intOpts + 1; }); $("#my_SPGroupsAssigned").append(strHTMLAvailable); } }); //Populate available site groups if(booErr == "false"){ $().SPServices({ operation: "GetGroupCollectionFromSite", async: false, completefunc: function(xData, Status) { $(xData.responseXML).find("Group").each(function() { booMatch = "false"; for (var i=0;i<=arrOptionsAssigned.length;i++){ if($(this).attr("Name") == arrOptionsAssigned[i]){ booMatch = "true"; break; } } if(booMatch == "false"){ strHTMLAssigned += "<option value='" + $(this).attr("Name") + "'>" + $(this).attr("Name") + "</option>"; } }); $("#my_SPGroupsAvailable").append(strHTMLAssigned); } }); } } function AddGroupsToUser(){ var i; if($("#my_SiteUsers").attr("value") == 0){ alert("You must select a user"); return; } if($("#my_SPGroupsAvailable").val() == null){ alert("You haven't selected any groups to add"); return; } else{ var arrGroups = $("#my_SPGroupsAvailable").val(); for (i=0;i<arrGroups.length;i++){ $().SPServices({ operation: "AddUserToGroup", groupName: arrGroups[i], userLoginName: $("#my_SiteUsers").attr("value"), async: false, completefunc: null }); } RefreshGroupLists(); } } function RemoveGroupsFromUser(){ var i if($("#my_SiteUsers").attr("value") == 0){ alert("You must select a user"); return; } if($("#my_SPGroupsAssigned").val() == null){ alert("You haven't selected any groups to remove"); return; } else{ var arrGroups = $("#my_SPGroupsAssigned").val(); for (i=0;i<arrGroups.length;i++){ $().SPServices({ operation: "RemoveUserFromGroup", groupName: arrGroups[i], userLoginName: $("#my_SiteUsers").attr("value"), async: false, completefunc: null }); } RefreshGroupLists(); } } $(文档).ready(函数(){ //填充用户选择列表 var strHTMLSiteUsers=“”; $().SPServices({ 操作:“GetUserCollectionFromSite”, async:false, completefunc:函数(扩展数据、状态){ $(扩展数据.responseXML).find(“用户”).each(函数(){ strhtmlisteusers++=“”+$(this.attr(“Name”)+“”; }); $(“#我的网站用户”).append(strHTMLSiteUsers); } }); 刷新组列表(); }); 函数refreshGroupList(){ var strHTMLAvailable=“”; var strHTMLAssigned=“”; var aroptionassigned=新数组(); var=0; var booMatch; var booErr=“false”; $(“#my#U SPGroupsAssigned”).html(“”); $(“#my#SPGroupsAvailable”).html(“”); if($(“#我的网站用户”).attr(“值”)==0){ 警报(“您必须选择一个用户”); 返回; } //填充指定的组 $().SPServices({ 操作:“GetGroupCollectionFromUser”, userLoginName:$(“#我的网站用户”).attr(“值”), async:false, completefunc:函数(扩展数据、状态){ $(扩展数据.responseXML).find(“errorstring”).each(函数(){ 警报(“未找到用户”); booErr=“true”; 返回; }); $(扩展数据.responseXML).find(“组”).each(函数(){ strHTMLAvailable++=“”+$(this.attr(“Name”)+“”; aroptionassigned[intOpts]=$(this.attr(“Name”); INTOTPTS=INTOTPTS+1; }); $(“#my#U SPGroupsAssigned”).append(strHTMLAvailable); } }); //填充可用的站点组 如果(booErr==“false”){ $().SPServices({ 操作:“GetGroupCollectionFromSite”, async:false, completefunc:函数(扩展数据、状态){ $(扩展数据.responseXML).find(“组”).each(函数(){ booMatch=“假”; 对于(var i=0;i

Javascript 正在尝试使用SPServices为用户获取组列表 我遇到了这个代码,我正试图在SP 2010基金会中使用它。当我加载页面时,我得到一个错误,说“找不到用户”。我正在使用jquery1.10.X和最新的SPServices版本。我想这和“userLoginName”有关,但我很难弄清楚 $(document).ready(function() { //Populate the users pick list var strHTMLSiteUsers = ""; $().SPServices({ operation: "GetUserCollectionFromSite", async: false, completefunc: function(xData, Status) { $(xData.responseXML).find("User").each(function() { strHTMLSiteUsers += "<option value='" + $(this).attr("LoginName") + "'>" + $(this).attr("Name") + "</option>"; }); $("#my_SiteUsers").append(strHTMLSiteUsers); } }); RefreshGroupLists(); }); function RefreshGroupLists(){ var strHTMLAvailable = ""; var strHTMLAssigned = ""; var arrOptionsAssigned = new Array(); var intOpts = 0; var booMatch; var booErr = "false"; $("#my_SPGroupsAssigned").html(""); $("#my_SPGroupsAvailable").html(""); if($("#my_SiteUsers").attr("value") == 0){ alert("You must select a user"); return; } //Populate the Groups Assigned $().SPServices({ operation: "GetGroupCollectionFromUser", userLoginName: $("#my_SiteUsers").attr("value"), async: false, completefunc: function(xData, Status) { $(xData.responseXML).find("errorstring").each(function() { alert("User not found"); booErr = "true"; return; }); $(xData.responseXML).find("Group").each(function() { strHTMLAvailable += "<option value='" + $(this).attr("Name") + "'>" + $(this).attr("Name") + "</option>"; arrOptionsAssigned[intOpts] = $(this).attr("Name"); intOpts = intOpts + 1; }); $("#my_SPGroupsAssigned").append(strHTMLAvailable); } }); //Populate available site groups if(booErr == "false"){ $().SPServices({ operation: "GetGroupCollectionFromSite", async: false, completefunc: function(xData, Status) { $(xData.responseXML).find("Group").each(function() { booMatch = "false"; for (var i=0;i<=arrOptionsAssigned.length;i++){ if($(this).attr("Name") == arrOptionsAssigned[i]){ booMatch = "true"; break; } } if(booMatch == "false"){ strHTMLAssigned += "<option value='" + $(this).attr("Name") + "'>" + $(this).attr("Name") + "</option>"; } }); $("#my_SPGroupsAvailable").append(strHTMLAssigned); } }); } } function AddGroupsToUser(){ var i; if($("#my_SiteUsers").attr("value") == 0){ alert("You must select a user"); return; } if($("#my_SPGroupsAvailable").val() == null){ alert("You haven't selected any groups to add"); return; } else{ var arrGroups = $("#my_SPGroupsAvailable").val(); for (i=0;i<arrGroups.length;i++){ $().SPServices({ operation: "AddUserToGroup", groupName: arrGroups[i], userLoginName: $("#my_SiteUsers").attr("value"), async: false, completefunc: null }); } RefreshGroupLists(); } } function RemoveGroupsFromUser(){ var i if($("#my_SiteUsers").attr("value") == 0){ alert("You must select a user"); return; } if($("#my_SPGroupsAssigned").val() == null){ alert("You haven't selected any groups to remove"); return; } else{ var arrGroups = $("#my_SPGroupsAssigned").val(); for (i=0;i<arrGroups.length;i++){ $().SPServices({ operation: "RemoveUserFromGroup", groupName: arrGroups[i], userLoginName: $("#my_SiteUsers").attr("value"), async: false, completefunc: null }); } RefreshGroupLists(); } } $(文档).ready(函数(){ //填充用户选择列表 var strHTMLSiteUsers=“”; $().SPServices({ 操作:“GetUserCollectionFromSite”, async:false, completefunc:函数(扩展数据、状态){ $(扩展数据.responseXML).find(“用户”).each(函数(){ strhtmlisteusers++=“”+$(this.attr(“Name”)+“”; }); $(“#我的网站用户”).append(strHTMLSiteUsers); } }); 刷新组列表(); }); 函数refreshGroupList(){ var strHTMLAvailable=“”; var strHTMLAssigned=“”; var aroptionassigned=新数组(); var=0; var booMatch; var booErr=“false”; $(“#my#U SPGroupsAssigned”).html(“”); $(“#my#SPGroupsAvailable”).html(“”); if($(“#我的网站用户”).attr(“值”)==0){ 警报(“您必须选择一个用户”); 返回; } //填充指定的组 $().SPServices({ 操作:“GetGroupCollectionFromUser”, userLoginName:$(“#我的网站用户”).attr(“值”), async:false, completefunc:函数(扩展数据、状态){ $(扩展数据.responseXML).find(“errorstring”).each(函数(){ 警报(“未找到用户”); booErr=“true”; 返回; }); $(扩展数据.responseXML).find(“组”).each(函数(){ strHTMLAvailable++=“”+$(this.attr(“Name”)+“”; aroptionassigned[intOpts]=$(this.attr(“Name”); INTOTPTS=INTOTPTS+1; }); $(“#my#U SPGroupsAssigned”).append(strHTMLAvailable); } }); //填充可用的站点组 如果(booErr==“false”){ $().SPServices({ 操作:“GetGroupCollectionFromSite”, async:false, completefunc:函数(扩展数据、状态){ $(扩展数据.responseXML).find(“组”).each(函数(){ booMatch=“假”; 对于(var i=0;i,javascript,jquery,sharepoint,spservices,Javascript,Jquery,Sharepoint,Spservices,您应该使用Firebug(Firefox的插件)来查看已完成的AJAX请求。这样您就可以看到确切的错误消息 我知道,通常您必须传递一个前面带有“-1;#”的用户名,才能使Sharepoint将其识别为用户名(例如:“-1;#john”)_doe@test.com也许这就是原因 您可以使用SPServices及其功能,而不是: $SP().groupMembers("my group", function(members) { for (var i=0; i < members.leng

您应该使用Firebug(Firefox的插件)来查看已完成的AJAX请求。这样您就可以看到确切的错误消息

我知道,通常您必须传递一个前面带有“-1;#”的用户名,才能使Sharepoint将其识别为用户名(例如:“-1;#john”)_doe@test.com也许这就是原因

您可以使用SPServices及其功能,而不是:

$SP().groupMembers("my group", function(members) {
  for (var i=0; i < members.length; i++) console.log(members[i]);
  // -> {ID:"1234", Name:"Doe, John", LoginName:"mydomain\john_doe", Email:"john_doe@rainbow.com"}
});
$SP().groupMembers(“我的组”,函数(成员){
对于(var i=0;i{ID:“1234”,姓名:“Doe,John”,登录名:“mydomain\John_Doe”,电子邮件:“John_doe@rainbow.com"}
});

只要快速查看SharePointPlus中可用的方法,使用“usergroups”方法不是更接近于GetGroupCollectionFromUserI成功获取$SP()的等效方法吗.usergroups为我提供所选用户所属的用户列表。现在,我只需要找出如何将其与上述代码合并以使其正常工作。现在它只是在编写控制台日志:(不使用控制台,您可以创建一些HTML代码并将其插入页面中…我不明白这里有什么困难?!