Solved

Using REST and JavaScript to write Multiple People Picker values to ListItem people picker column

Posted on 2016-10-26
8
29 Views
Last Modified: 2016-11-27
I am searching for an example of writing a listitem from a people picker control to a people column of the list.
0
Comment
Question by:Howard Bash
  • 3
  • 3
8 Comments
 
LVL 82

Expert Comment

by:leakim971
ID: 41893777
do you still need help on this one?
0
 
LVL 82

Expert Comment

by:leakim971
ID: 41893813
could you please do a screen copy of your page or just create a funny photoshop schema, I currenlty don't understand where you want to go.
Thanks
0
 
LVL 1

Author Comment

by:Howard Bash
ID: 41897559
I have figured out/found the techniques for this. Thanks.
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 82

Expert Comment

by:leakim971
ID: 41897574
ok, please close the question. if possible after posting your solution and accept it as answer.
0
 
LVL 1

Accepted Solution

by:
Howard Bash earned 0 total points
ID: 41897586
//--------------------------------------------------------------------------------
// Convert People Picker String to JSON Array
//--------------------------------------------------------------------------------
function UserInfoFromPP(ppID) {
	var sObj = $(ppID).val();
	var jObj = null;
	if (sObj.length>0)
	{
		jObj = JSON.parse(sObj);
	}	
	return (jObj);
}


//--------------------------------------------------------------------------------
//  You need to construct a string of the form '{"results":["id1", "id2"]}'
//--------------------------------------------------------------------------------
function BuildPeepsString() {
	var jObj = UserInfoFromPP('#peoplePickerDiv_TopSpan_HiddenInput');
	var acc = '{"results":[';
	var ptr = 0;
	var id = "";
	if (jObj) {
		var len = jObj.length;
		for (ptr=0; ptr<len-1; ptr++) {
			id = GetUserProfileAttribute(jObj[ptr].Key, 'ID');
			acc = acc + '"' + id + '"' + ",";						
		}		
		id = GetUserProfileAttribute(jObj[len-1].Key, 'ID');
		acc = acc + '"' + id + '"' ;						
		acc = acc + ']}';
	}

	return (acc);
}


//--------------------------------------------------------------
function HelpAddPostWithParameters(pp, title, body) {
	//var peeps = '{"results":["9", "21"]}';
	var jsonObject = JSON.parse(pp);
	AddPostWithParameters('Posts', title, body, jsonObject);
}

function AddPostWithParameters(plistName, pTitle, pBody, pPeopleObject) {
	var itemProperties = {"Title":pTitle,"Body": pBody, "PublishedDate":new Date().toISOString(), 	
	"PeopleRecognizedId":  pPeopleObject 
	};
	
	//create item
	createListItem(_spPageContextInfo.webAbsoluteUrl,plistName,itemProperties,
	   function(entity){
		  console.log('Post ' + entity.Title + ' has been added');
	   }, 
	   function(error){
		  console.log(JSON.stringify(error));
	   }
	);	
}

//.... on a submit added the following fragment:
               var comments = $('#txtComments').val();
		var peepsString = "";
		peepsString = BuildPeepsString();  
		var demonstratedValue = $('#hiddenDemonstratedValue').val();
		if (peepsString){		
			HelpAddPostWithParameters(peepsString, demonstratedValue, comments);
		}

Open in new window

2
 
LVL 15

Expert Comment

by:Kyle Santos
ID: 41897821
hbash,

Thank you for posting your solution and closing your question.
0
 
LVL 1

Author Closing Comment

by:Howard Bash
ID: 41902942
It solved the problem.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Boost your ability to deliver ambitious and competitive web apps by choosing the right JavaScript framework to best suit your project’s needs.
When crafting your “Why Us” page, there are a plethora of pitfalls to avoid. Follow these five tips, and you’ll be well on your way to creating an effective page.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.

791 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question