the below example is from something im working on, and i don't want to be bothered to get a list of states, but it should explain the principle.
replace my day of the week with states and $selected is the state value you already have for the person
$day_of_week= array('0'=>'-- Select --','1'=>"Monday",'2'=>"Tuesday",'3'=>"Wednesday",'4'=>"Thursday",'5'=>"Friday",'6'=>"Saturday",'7'=>"Sunday",'8'=>"Every Day",'9'=>"Week Day",'10'=>"Weekend");
function create_select($fields,$selected= ''){
$field= '';
foreach($fields as $key=>$val){
$field.= '<option value="' . $key . '"';
if("$key" == "$selected")
$field.= ' selected="selected" ';
$field.= ' >' . $val . '</option>';
}
return $field;
}
echo '<select name="state">'.create_select($day_of_week,$selected).'</select>';