2017-01-31 2 views
0

Ich konnte Daten mit einem Ajax-Aufruf aus dem Active Directory abrufen.Anzeige von Ajax Daten in einer UI

die PHP-Datei verwendet, um die Ajax-Aufruf zu Active Directory zu machen: http://pastebin.com/tSRxwQL8

Der Browser-Konsole zeigt, dass ein Ajax-Aufruf gibt diese:

<p> sn: xxxxxx<br/>givenname: xxxxx<br/> 
 
    employeeID: 0050<br/ 
 
    >distinguishedName: CN=xxxx xxxxx,OU=Employees,OU=Accounts,OU=India,DC=asia,DC=xxxxxxx,DC=com<br/> 
 
    displayName: Mark Hewettk<br/>sAMAccountName: xxxxxxx<br/> 
 
    department: xxxxx<br/>manager: CN=xxxxxx xxxxxxx,OU=Employees,OU=Accounts,OU=India,DC=asia,DC=xxxx,DC=com 
 
    <br/> 
 
    mail: [email protected]<br/> 
 
    title: xyz<br/>

Ich möchte nehmen nur einige Attribute wie mail, displayname usw. und Anzeige in meinem HTML:

<h2 class="profile__name" id="emailOfUser">Email : </h2>

Das Problem ist jetzt die Jquery, die ich hier verwendet haben:

$('.leaderboard li').on('click', function() { 
 
    $.ajax({ 
 
    url: "../popupData/activedirectory.php", // your script above a little adjusted 
 
    type: "POST", 
 
    data: { 
 
     id: $(this).find('.parent-div').data('name') 
 
    }, 
 
    success: function(data) { 
 
     console.log(data); 
 

 
     $('#popup').fadeIn(); 
 

 
     $('#emailOfUser').html(data); //this line displays all data whereas I want to select only email,displayname from the above console data 
 

 

 

 
     //whatever you want to fetch ...... 
 
     // etc .. 
 
    }, 
 
    error: function() { 
 
     alert('failed, possible script does not exist'); 
 
    } 
 
    }); 
 
});

Problem ist folgendes:

$('#emailOfUser').html(data);

diese Zeile zeigt alle Daten, während ich nur E-Mail, displayname aus den oben genannten Konsolendaten

freundlich, mir wählen will helfen, wie nur die gewünschten Attributdaten aus der obigen Browser-Konsole wählen Daten.

+0

Bitte fügen Sie den 'HTML' Code und die' PHP' Code in 'activedirectory.php' – Ionut

+0

Warum Sie that.that aint necessay brauchen. @lonut – JAne

+0

Sie haben HTML-Daten vom Server zurückgegeben. Und hier möchten Sie mit Schlüssel auf Daten zugreifen, daher müssen Sie JSON zurückgeben. – Shubhranshu

Antwort

0

Idealerweise sollten Sie JSON aus der PHP-Datei zurückgeben, aber wenn es nicht möglich ist, Änderungen an der PHP-Datei vorzunehmen, können Sie split ("mail:") und split ("title:") verwenden, um Daten zu extrahieren

success: function(data) { 
     console.log(data); 

     $('#popup').fadeIn(); 

     var email=(data.split("mail:")[1]).split("title:")[0]; 
     $('#emailOfUser').html(email); //this line displays all data whereas I want to select only email,displayname from the above console data 



     //whatever you want to fetch ...... 
     // etc .. 
    }, 
+0

Dies funktioniert. Es zeigt nur die E-Mail.Ich verstehe es irgendwie. Kannst du mir erklären, wie es funktioniert? Danke vielmals. – JAne

+0

Die Daten, die auf Erfolg von ajax erhalten, ist nur eine Zeichenfolge von PHP-Datei empfangen, ich bin nur "data" durch "mail:" so teilen ganze Zeichenfolge wird in zwei Teile geteilt werden ein Teil wird Zeichenfolge vor 'mail:' enthalten und ein anderer Teil enthält einen String nach 'mail:', dann nehme ich den zweiten Teil 'data.split (" mail: ") [1]' und spalte ihn erneut mit 'title:', um die erforderliche emailId zu erhalten. –

+0

Vielen Dank. Aber ich kämpfe um das Foto, d. H. Das Thumbnail-Bild.Wenn Sie eine Idee haben, teilen Sie hier freundlicherweise.Anyways, danke nochmal. Gott segne dich. – JAne

0

Sie erhalten eine Antwort in HTML, die Ihnen das Extrahieren von Mail, Displayname usw. erschwert. Sie sollten die Antwort in JSON erhalten, die es Ihnen erleichtert, die erforderlichen Informationen zu extrahieren. Bitten Sie Ihr Back-End-Team, eine Antwort im JSON-Format zu senden.

+0

Warum sendet mein Backend, wenn ich einen AJX-Aufruf an das Active Directory mache. – JAne

+0

Okay, es ist viel einfacher für Sie, eine Antwort in JSON von Ihrer PHP-Datei zu senden. Dies wird mehr optimieren, da keine String-Manipulation auf die Antwort erhalten wird. – DineshRS

0

Working Fiddle

Versuchen:

var lines = 'sn: xxxxxx<br/>givenname: xxxxx<br/>employeeID: 0050<br/>distinguishedName: CN=xxxxxxxxx,OU=Employees,OU=Accounts,OU=India,DC=asia,DC=xxxxxxx,DC=com<br/>displayName: Mark Hewettk<br/>sAMAccountName: xxxxxxx<br/>department: xxxxx<br/>manager: CN=xxxxxx xxxxxxx,OU=Employees,OU=Accounts,OU=India,DC=asia,DC=xxxx,DC=com<br/>mail:[email protected]<br/>title:xyz<br/>'.split('<br/>'); 
    jQuery.each(lines, function() { 
    var val = this; 
    if (val.indexOf('mail') > -1) 
    // alert(val.split(':')[1]); //Only for test 
     $('#emailOfUser').html(val.split(':')[1]); 
    }); 
+0

danke für die Eingabe. Die Daten, die Sie hier in var-Zeilen haben, stammen aus dem aktiven Verzeichnis, das dynamisch ist. Ich habe einen Ajax-Aufruf gemacht, um die Daten abzurufen, wie in dem obigen JQuery.My-Punkt ist, wie ich die obige jQuery nur anzeigen kann Diese Attribute, die ich in meiner UI anzeigen möchte, können hier eine geringfügige Änderung funktionieren, die ich nicht herausfinden kann. – JAne

Verwandte Themen