set fieldNameList to {"First Name", "Last Name", "City", "State"}
set userData to getMultiFieldUserInput(fieldNameList)
on getMultiFieldUserInput(fieldNameList)
set inputValues to {}
--prepare a list to hold user values.
repeat length of fieldNameList times
set the end of inputValues to ""
end repeat
--Loop through fields
repeat with i from 1 to length of fieldNameList
set fieldName to item i of fieldNameList
set dataSummary to ""
--Build current data summary
repeat with ii from 1 to length of fieldNameList
set dataSummary to dataSummary & (item ii of fieldNameList & " : " & item ii of inputValues & return)
end repeat
--Build data request prompt
set promptText to "Please provide the " & fieldName & return & return & dataSummary
set defaultAnswer to item i of fieldNameList
set userInput to ""
--Ask for data and Don't take no for an answer
repeat while userInput is in {"", defaultAnswer}
set userInput to text returned of (display dialog promptText default answer defaultAnswer)
end repeat
--Store valid user data
set item i of inputValues to userInput
set userInput to ""
end repeat
--Maybe ask user to confirm their completed data?
return inputValues
end getMultiFieldUserInput