Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set default value for HTML select control in PHP

Tags:

html

php

I've got an html select drop down for 50 states, and i've got a default state value in PHP. Is there an easier way to set the default select value than doing

<option value="NY" <?php if ($default_state == 'NY') echo 'selected="selected"'; ?>New York</option>

50 times?

In other words, do I have to run a check in each option?

like image 240
Yarin Avatar asked Dec 17 '22 02:12

Yarin


1 Answers

I'd create an array of the state abbreviations and loop through them, checking to see if the state matches the default and then appending the necessary HTML.

Here's a quick (functional) code example. Note you could shorten the array to just the two letter abbreviations if you wanted:

<select>
<?php
$default = "NJ";
$states = array('AL'=>"Alabama",  
            'AK'=>"Alaska",  
            'AZ'=>"Arizona",  
            'AR'=>"Arkansas",  
            'CA'=>"California",  
            'CO'=>"Colorado",  
            'CT'=>"Connecticut",  
            'DE'=>"Delaware",  
            'DC'=>"District Of Columbia",  
            'FL'=>"Florida",  
            'GA'=>"Georgia",  
            'HI'=>"Hawaii",  
            'ID'=>"Idaho",  
            'IL'=>"Illinois",  
            'IN'=>"Indiana",  
            'IA'=>"Iowa",  
            'KS'=>"Kansas",  
            'KY'=>"Kentucky",  
            'LA'=>"Louisiana",  
            'ME'=>"Maine",  
            'MD'=>"Maryland",  
            'MA'=>"Massachusetts",  
            'MI'=>"Michigan",  
            'MN'=>"Minnesota",  
            'MS'=>"Mississippi",  
            'MO'=>"Missouri",  
            'MT'=>"Montana",
            'NE'=>"Nebraska",
            'NV'=>"Nevada",
            'NH'=>"New Hampshire",
            'NJ'=>"New Jersey",
            'NM'=>"New Mexico",
            'NY'=>"New York",
            'NC'=>"North Carolina",
            'ND'=>"North Dakota",
            'OH'=>"Ohio",  
            'OK'=>"Oklahoma",  
            'OR'=>"Oregon",  
            'PA'=>"Pennsylvania",  
            'RI'=>"Rhode Island",  
            'SC'=>"South Carolina",  
            'SD'=>"South Dakota",
            'TN'=>"Tennessee",  
            'TX'=>"Texas",  
            'UT'=>"Utah",  
            'VT'=>"Vermont",  
            'VA'=>"Virginia",  
            'WA'=>"Washington",  
            'WV'=>"West Virginia",  
            'WI'=>"Wisconsin",  
            'WY'=>"Wyoming");

foreach($states as $key=>$val) {
    echo ($key == $default) ? "<option selected=\"selected\" value=\"$key\">$val</option>":"<option value=\"$key\">$val</option>";
}
?>
</select>
like image 118
j08691 Avatar answered Jan 09 '23 09:01

j08691