在UI中显示称为数据的ajax

时间:2017-01-31 08:03:21

标签: javascript php jquery html ajax

我能够通过Active Directory中的ajax调用来获取数据。

用于对活动目录进行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: mhewettk@abc.com<br/>
   title: xyz<br/>

我想只使用上面的一些属性,如mail,displayname等,并在我的HTML中显示:

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

现在问题是我在这里使用的jquery:

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

问题是:

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

此行显示所有数据,而我只想从上述控制台数据中选择电子邮件,displayname

请帮助我如何从上述浏览器控制台数据中仅选择所需的属性数据。

3 个答案:

答案 0 :(得分:0)

您在HTML中收到回复,这使您难以提取邮件,显示名称等。 您应该在JSON中获得响应,这将使您轻松提取所需的信息。 请您的后端团队以JSON格式发送响应。

答案 1 :(得分: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 ..
    },

答案 2 :(得分: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:mhewettk@abc.com<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]);
  });