Here's an updated version of my PeoplePicker filling script that now uses the position of the people picker rather than the field name to allow you to fill multiple people pickers easily.
Note : If you tried my code & couldn't get it to work, it's because square brackets weren't displaying on this site so I've had to put a space after the integer when getting the value from the array to get it to show here.
<script type="text/javascript">
_spBodyOnLoadFunctionNames.push("fillDefaultValues");
function fillDefaultValues()
{
//fill the first people picture
fillPeoplePickerWithCurrentUser(1);
//fill th esecond people picker
fillPeoplePickerWithCurrentUser(2);
}
function fillPeoplePickerWithCurrentUser(pickerNo)
{
var currentUser = getCurrentUser();
if(currentUser != null)
{
var pp = getPickerImputElement(pickerNo);
if(pp != null)
{
pp.innerHTML = currentUser;
}
}
}
function getPickerImputElement(pickerNo)
{
var result = '';
var divs = document.getElementsByTagName('DIV');
var j = 0;
for(var i=0; i < divs.length; i++)
{
if(divs[i ].id.indexOf('UserField_upLevelDiv') > 0)
{
j++;
if(j == pickerNo)
{
result = divs[i ];
break;
}
}
}
return result;
}
function getCurrentUser()
{
var tags = document.getElementsByTagName('a');
for(var i=0; i < tags.length; i++)
{
if(tags[i ].innerText.substr(0,7) == 'Welcome')
return tags[i ].innerText.substr(8,tags[i ].innerText.length);
}
}
</script>