2017-01-31 3 views
0

アクティブなディレクトリからajax呼び出しでデータを取得できました。UIでデータと呼ばれるajaxを表示

Active DirectoryへのAJAX呼び出しを行うために使用するPHPファイル:http://pastebin.com/tSRxwQL8

ブラウザのコンソールが表示さAJAX呼び出しが返す、この:

<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/>

私が撮りたいです上記のいくつかの属性はmail、displaynameなどのようにHTMLの中に表示されます:

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

今の問題は、私がここで使用しているjQueryのです:

0123:

$('.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'); 
 
    } 
 
    }); 
 
});

問題はこれです

私は電子メールのみを選択するのに対し、このラインは、親切に上記のブラウザのコンソールからのみ必要な属性データを選択する方法私を助ける上でコンソールデータからのDisplayName

、すべてのデータを表示しますデータ。

+0

あなたはthat.that AINTがnecessay必要な理由activedirectory.php' – Ionut

+0

'で' HTML'コードと 'PHP'コードを追加してください。 @lonut – JAne

+0

サーバーからhtmlデータを返しました。ここではkeyを使ってデータにアクセスしたいので、JSONを返す必要があります。 – Shubhranshu

答えて

0

PHPファイルからJSONを返すのが理想的ですが、PHPファイルを変更できない場合はsplit( "mail:")とsplit( "title:")を使用してデータを抽出します

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

このworks.itは電子メールのみを表示します。私はそれを理解しています。それはどのように動作するのか説明できますか?どうもありがとう。 – JAne

+0

ajaxがうまくいっているというデータがPHPファイルから受け取った文字列であるだけで、 'data'を' mail: 'で分割しているので、全体の文字列は2つの部分に分割されます。 'mail:'の後ろに文字列が含まれている場合、 'data.split(" mail: ")[1]'という2番目の部分をとり、 'title:'で再度分割して必要なemailIdを取得します。 –

+0

ありがとうございます。しかし、写真をサムネイル画像で表示するのには苦労しています。もしここで親切に分かち合いたいと思っていれば、いつでも、ありがとう。 – JAne

0

あなたはHTMLで回答を得ています。メールや表示名などを抽出するのが難しくなります。 あなたは必要な情報を簡単に抽出できるようにJSONで回答を得てください。 JSON形式で応答を送信するようにバックエンドチームに依頼してください。

+0

アクティブディレクトリへのajxコールを行っているときにバックエンドが送信するのはなぜですか。 – JAne

+0

さて、あなたのPHPファイルからJSONで応答を送信する方がはるかに簡単です。 これは、応答を取得する際に文字列の操作がないため、さらに最適化されます。 – DineshRS

0

Working Fiddle

試してみてください。

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

入力していただきありがとうございます。ここでvar行にあるデータは動的なアクティブディレクトリからのものです。上記のJQueryでデータを取得するためにajax呼び出しを行いました。私のポイントは、上記のjQueryを表示するように修正する方法ですこれらの属性を私のUIに表示したいと考えています。ここで若干の変更が可能ですが、わかりません。 – JAne

関連する問題