2017-05-04 9 views
0

SP PeoplePickerでユーザーを検索し、ユーザーの部門を返すコードがあります。Sharepoint-2013アクティブユーザー部門の入力フィールド

私が達成したいのは、私がpeoplepickerフィールドを必要としないので、現在のユーザーの部門でフィールドを自動的に埋めることです。現在のユーザーデータを取得できるか、またはpeoplepickerフィールドを持たずにpeoplepickerを検索できるはずです。

だから、私はコンテンツエディタに次のスクリプトを追加します。

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery.SPServices/2014.02/jquery.SPServices-2014.02.min.js"></script> 

<script> 
    $(document).ready(function() 
    { 
     var PeoplePicker = $("div[title='test_column']"); 
     var PeoplePickerTopId = PeoplePicker.attr('id'); 
     var ppobject = SPClientPeoplePicker.SPClientPeoplePickerDict[PeoplePickerTopId]; 

     ppobject.OnValueChangedClientScript = function(elementId, userInfo){getUserData()};  
    }); 

    function getUserData() 
    { 
     //Set variables 
     var UserDept; 
     var i; 
     var _PeoplePicker = $("div[title='test_column']"); 
     var _PeoplePickerTopId = _PeoplePicker.attr('id'); 
     var ppobject = SPClientPeoplePicker.SPClientPeoplePickerDict[_PeoplePickerTopId]; 

     // Call GetAllUserInfo to read PeoplePicker entries 
     editorsInfo = ppobject.GetAllUserInfo(); 

     // Set Customer Info 
     if(editorNames!= null) 
      {UserDept = editorsInfo[0].EntityData.Department;} 

     $("input[title='Department']").val(UserDept) 
    } 
</script> 

注意を、私は、SharePointデザイナーにアクセスすることはできません。私はこの作業をWebビューのみから取得しようとしています。

また、答えにAJAXが必要な場合や、httpget投稿から値を返す場合は、これまでAJAXを使用したことがないので徹底的に回答してください。

ありがとうございます!

答えて

1

SPServices Jqueryを使用できます。最新のものをダウンロードするだけです。 Sharepoint 2013を使用しているため、コンテンツエディタの代わりにスクリプトエディタを使用してください。 以下は私が定期的に使用するスクリプトであり、うまく動作します。

<script type="text/javascript" src="/your path to JS/SiteAssets/JS/jquery-3.1.1.js"></script> 
 
<script type="text/jscript" src="/your path to JS/SiteAssets/JS/jquery.SPServices.min.js"></script> 
 

 
<script type="text/javascript"> 
 

 
$(document).ready(function() { \t 
 

 
\t var UserDept = $().SPServices.SPGetCurrentUser({ 
 
\t fieldName: "Department", \t 
 
\t debug: false 
 
\t }); \t 
 
\t 
 

 
\t $("input[title*='Department']").val(UserDept); // For assigning to SharePoint column named 'Department' 
 

 
\t $("#txtDept").val(UserDept); // For assigning to textbox 
 

 

 
}); 
 

 
</script>

+0

パーフェクト!魅力のように働いて、ありがとう! – penfold1992

+0

ようこそ@ penfold1992 – Sniper