The main idea is to prepare string with the list of files to operate (even through the loop) than transfer the string to command:
sloc='/some/location'
unset flist
for i in "$@"
do
flist[${#flist[*]}]="$sloc/$i/$i".pdf
flist[${#flist[*]}]="$sloc/$i/$i".txt
done
scp [email protected]:"${flist[@]}" /somewhere/else/