Update current user info using SPServices and ECMAScript

Here is the source code:

1. Get user info then auto fill to controls

var displayName = "";
function GetUser() 
{ 
    displayName = $().SPServices.SPGetCurrentUser({
    fieldName: "Title"
    });     
    var ctx = new SP.ClientContext.get_current(); 
    this.currentUser = ctx.get_web().get_currentUser();
    ctx.load(this.currentUser);
    ctx.executeQueryAsync(Function.createDelegate(this, this.onSucceededGetUser), 
    Function.createDelegate(this, this.onQueryFailed)); 
}
 
function onSucceededGetUser(sender, args) 
{ 
    //alert("The users " + this.currentUser.get_loginName());   
    $("input[Title='Title']").val(displayName); 
    $("input[Title='Account']").val(this.currentUser.get_loginName());  
    $("input[Title='Email']").val(this.currentUser.get_email());        
}
function onQueryFailed(sender, args) 
{
    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}   	

2. Update user email info

function UpdateUserEmail() 
{           
    var ctx = new SP.ClientContext.get_current(); 
    this.currentUser = ctx.get_web().get_currentUser();
    var email = $("input[Title='Email']").val();
    this.currentUser.set_email(email);
    this.currentUser.update();  
    ctx.executeQueryAsync(Function.createDelegate(this, this.onSucceededUpdateUserEmail), 
    Function.createDelegate(this, this.onQueryFailed)); 
}
function onSucceededUpdateUserEmail(sender, args) 
{ 
    alert("Updated! " + this.currentUser.get_email());      
}

I’d like SPServices and ECMAScripts.

Leave a Reply