Kuldeep
Kuldeep

Reputation: 47

How can I add people picker data (DisplayText) into column of type 'person or group' using javascript?

I'm getting display text and email of user but I don't know how to insert it into 'person or group' column.

function getUserInfo(PeoplepickerId) {  
    var UsersID="";
    var peoplePicker = this.SPClientPeoplePicker.SPClientPeoplePickerDict[PeoplepickerId + "_TopSpan"];  

        if (peoplePicker.HasInputError) return false; // if any error  
        else if (!peoplePicker.HasResolvedUsers()) return false; // if any invalid users  
        else if (peoplePicker.TotalUserCount > 0) {  
            // Get information about all users.  
            var users = peoplePicker.GetAllUserInfo();  
            //var userInfo = '';  
            //var promise = '';  
             for (var i = 0; i < users.length; i++) {  
                 UsersID += users[i].DisplayText + "\n";
                 UsersID += users[i].EntityData.Email;
             }  
             return UsersID;  
        }       
    } 

Upvotes: 0

Views: 968

Answers (1)

Gautam Sheth
Gautam Sheth

Reputation: 2500

You can use JSOM to insert data into your SharePoint list as below:

var ctx = new SP.ClientContext.get_current();

var list = web.get_lists().getByTitle("Custom List");
var listCreationInformation = new SP.ListItemCreationInformation();
var listItem = list.addItem(listCreationInformation);           

// Get user keys.
var keys = peoplePicker.GetAllUserKeys();
var finalusers = new Array();
for (var i = 0; i < users.length; i++) {
    var arrayuser = users[i];
    finalusers.push(SP.FieldUserValue.fromUser(arrayuser.Key));
}
listItem.set_item("PeopleColumnInternalName", finalusers);
listItem.update();
ctx.load(listItem);

ctx.executeQueryAsync(function(){
    console.log("inserted successfully");
}, function(){
    console.log("something went wrong");
});

So, you can modify your code somewhat as below. Replace with your list name and the internal name of user column:

function getUserInfo(PeoplepickerId) {  
    var UsersID="";
    var peoplePicker = this.SPClientPeoplePicker.SPClientPeoplePickerDict[PeoplepickerId + "_TopSpan"];  

        if (peoplePicker.HasInputError) return false; // if any error  
        else if (!peoplePicker.HasResolvedUsers()) return false; // if any invalid users  
        else if (peoplePicker.TotalUserCount > 0) {  
            // Get information about all users.  
            var users = peoplePicker.GetAllUserInfo();  
            //var userInfo = '';  
            //var promise = '';  
             for (var i = 0; i < users.length; i++) {  
                 UsersID += users[i].DisplayText + "\n";
                 UsersID += users[i].EntityData.Email;
             }

            //insert data to sharepoint
            var ctx = new SP.ClientContext.get_current();

            var list = web.get_lists().getByTitle("Custom List");
            var listCreationInformation = new SP.ListItemCreationInformation();
            var listItem = list.addItem(listCreationInformation);           

            // Get user keys.
            var keys = peoplePicker.GetAllUserKeys();
            var finalusers = new Array();
            for (var i = 0; i < users.length; i++) {
                var arryuser = users[i];
                finalusers.push(SP.FieldUserValue.fromUser(arryuser.Key));
            }
            listItem.set_item("PeopleColumnInternalName", finalusers);
            listItem.update();
            ctx.load(listItem);

            ctx.executeQueryAsync(function(){
                console.log("inserted successfully");
                return UsersID;
            }, function(){
                console.log("something went wrong");
                return UsersID;
            });

        }       
} 

Upvotes: 1

Related Questions