以下のコードを参照してください。私はアクティブなディレクトリを調べ、2つのフィールド "name"と "cn"を取得しています。これらを配列で連結し、ドロップダウンリストに割り当てたいと思います。すなわち、名前+ '' + cn。以下のコードは結果を間違って公開し、すべての名前とcnを個々の結果として表示しています。つまり、連結されていません。ラウンド配列のループと結果の連結Javascript
誰かに助言をして正しい方向に私を入れてもらえますか?
おかげで、 ジョージ
try
{
// Get LDAP Context
ctx = LdapServices.getLdapContext();
//Specify the search scope
ctls.setSearchScope(SearchControls.ONELEVEL_SCOPE);
var searchFilter = "(&(objectClass=group))";
//Specify the Base for the search
var searchBase = "ou=Licensed Applications,ou=SCCM Apps,ou=Applications,ou=Groups,dc=XXX,dc=XX,dc=XX";
//initialize counter to total the group members
var totalResults = 0;
//Specify the attributes to return
var returnedAtts=["name", "cn"];
ctls.setReturningAttributes(returnedAtts);
//Search for objects using the filter
var answer = ctx.search(searchBase, searchFilter, ctls);
//Loop through the search results
while (answer.hasMoreElements())
{
var sr = answer.next();
var attrs = sr.getAttributes();
if (attrs != null)
{
try
{
for (var ae = attrs.getAll();ae.hasMore();)
{
var attr = ae.next();
var pos = attr.toString().indexOf(":",0);
var attributeName = attr.toString().substring(0,pos);
var name = "";
var cn = "";
for (var e = attr.getAll();e.hasMore();totalResults++)
{
if(attributeName == "name")
{
name = e.next().replace('SCCM_','');
}
if(attributeName == "cn")
{
cn = e.next();
}
}
listItems.push(name + ' (' + cn + ')');
}
}
catch (e)
{
log("Problem listing items: " + e);
}
}
}
}
catch (e)
{
log("Problem searching directory: " + e);
}
finally
{
// Close LDAP Context
ctx.close();
}
'listItems.push(名+は、 '( '+ CN +')')'非押すと-concatenated 'name'と' cn'を指定すると、あなたが私たちに示したコードの外にあります。なぜなら、これは明らかに適切な連結であるからです。 –
はい、私は1つ以上のループに問題があると思います。しかし、私はどこを見ることができません。 –