2011-03-16 251 views
1
<label for="state" class="medium">State</label> 
<select name="state"> 
    <option value="" <?php if($_POST['state'] =="") { echo "SELECTED";} ?>>-- Select State --</option> 
    <option value="AL" <?php if($_POST['state'] =="AL") { echo "SELECTED";} ?>>Alabama</option> 
    <option value="AK" <?php if($_POST['state'] =="AK") { echo "SELECTED";} ?>>Alaska</option> 
    <option value="AZ" <?php if($_POST['state'] =="AZ") { echo "SELECTED";} ?>>Arizona</option> 
    <option value="AR" <?php if($_POST['state'] =="AR") { echo "SELECTED";} ?>>Arkansas</option> 
    <option value="CA" <?php if($_POST['state'] =="CA") { echo "SELECTED";} ?>>California</option> 
    <option value="CO" <?php if($_POST['state'] =="CO") { echo "SELECTED";} ?>>Colorado</option> 
    <option value="CT" <?php if($_POST['state'] =="CT") { echo "SELECTED";} ?>>Connecticut</option> 
    <option value="DE" <?php if($_POST['state'] =="DE") { echo "SELECTED";} ?>>Delaware</option> 
    <option value="DC" <?php if($_POST['state'] =="DC") { echo "SELECTED";} ?>>District of Columbia</option> 
    <option value="FL" <?php if($_POST['state'] =="FL") { echo "SELECTED";} ?>>Florida</option> 
    <option value="GA" <?php if($_POST['state'] =="GA") { echo "SELECTED";} ?>>Georgia</option> 
    <option value="HI" <?php if($_POST['state'] =="HI") { echo "SELECTED";} ?>>Hawaii</option> 
    <option value="ID" <?php if($_POST['state'] =="ID") { echo "SELECTED";} ?>>Idaho</option> 
    <option value="IL" <?php if($_POST['state'] =="IL") { echo "SELECTED";} ?>>Illinois</option> 
    <option value="IN" <?php if($_POST['state'] =="IN") { echo "SELECTED";} ?>>Indiana</option> 
    <option value="IA" <?php if($_POST['state'] =="IA") { echo "SELECTED";} ?>>Iowa</option> 
    <option value="KS" <?php if($_POST['state'] =="KS") { echo "SELECTED";} ?>>Kansas</option> 
    <option value="KY" <?php if($_POST['state'] =="KY") { echo "SELECTED";} ?>>Kentucky</option> 
    <option value="LA" <?php if($_POST['state'] =="LA") { echo "SELECTED";} ?>>Louisiana</option> 
    <option value="ME" <?php if($_POST['state'] =="ME") { echo "SELECTED";} ?>>Maine</option> 
    <option value="MD" <?php if($_POST['state'] =="MD") { echo "SELECTED";} ?>>Maryland</option> 
    <option value="MA" <?php if($_POST['state'] =="MA") { echo "SELECTED";} ?>>Massachusetts</option> 
    <option value="MI" <?php if($_POST['state'] =="MI") { echo "SELECTED";} ?>>Michigan</option> 
    <option value="MN" <?php if($_POST['state'] =="MN") { echo "SELECTED";} ?>>Minnesota</option> 
    <option value="MS" <?php if($_POST['state'] =="MS") { echo "SELECTED";} ?>>Mississippi</option> 
    <option value="MO" <?php if($_POST['state'] =="MO") { echo "SELECTED";} ?>>Missouri</option> 
    <option value="MT" <?php if($_POST['state'] =="MT") { echo "SELECTED";} ?>>Montana</option> 
    <option value="NE" <?php if($_POST['state'] =="NE") { echo "SELECTED";} ?>>Nebraska</option> 
    <option value="NV" <?php if($_POST['state'] =="NV") { echo "SELECTED";} ?>>Nevada</option> 
    <option value="NH" <?php if($_POST['state'] =="NH") { echo "SELECTED";} ?>>New Hampshire</option> 
    <option value="NJ" <?php if($_POST['state'] =="NJ") { echo "SELECTED";} ?>>New Jersey</option> 
    <option value="NM" <?php if($_POST['state'] =="NM") { echo "SELECTED";} ?>>New Mexico</option> 
    <option value="NY" <?php if($_POST['state'] =="NY") { echo "SELECTED";} ?>>New York</option> 
    <option value="NC" <?php if($_POST['state'] =="NC") { echo "SELECTED";} ?>>North Carolina</option> 
    <option value="ND" <?php if($_POST['state'] =="ND") { echo "SELECTED";} ?>>North Dakota</option> 
    <option value="OH" <?php if($_POST['state'] =="OH") { echo "SELECTED";} ?>>Ohio</option> 
    <option value="OK" <?php if($_POST['state'] =="OK") { echo "SELECTED";} ?>>Oklahoma</option> 
    <option value="OR" <?php if($_POST['state'] =="OR") { echo "SELECTED";} ?>>Oregon</option> 
    <option value="PA" <?php if($_POST['state'] =="PA") { echo "SELECTED";} ?>>Pennsylvania</option> 
    <option value="RI" <?php if($_POST['state'] =="RI") { echo "SELECTED";} ?>>Rhode Island</option> 
    <option value="SC" <?php if($_POST['state'] =="SC") { echo "SELECTED";} ?>>South Carolina</option> 
    <option value="SD" <?php if($_POST['state'] =="SD") { echo "SELECTED";} ?>>South Dakota</option> 
    <option value="TN" <?php if($_POST['state'] =="TN") { echo "SELECTED";} ?>>Tennessee</option> 
    <option value="TX" <?php if($_POST['state'] =="TX") { echo "SELECTED";} ?>>Texas</option> 
    <option value="UT" <?php if($_POST['state'] =="UT") { echo "SELECTED";} ?>>Utah</option> 
    <option value="VT" <?php if($_POST['state'] =="VT") { echo "SELECTED";} ?>>Vermont</option> 
    <option value="VA" <?php if($_POST['state'] =="VA") { echo "SELECTED";} ?>>Virginia</option> 
    <option value="WA" <?php if($_POST['state'] =="WA") { echo "SELECTED";} ?>>Washington</option> 
    <option value="WV" <?php if($_POST['state'] =="WV") { echo "SELECTED";} ?>>West Virginia</option> 
    <option value="WI" <?php if($_POST['state'] =="WI") { echo "SELECTED";} ?>>Wisconsin</option> 
    <option value="WY" <?php if($_POST['state'] =="WY") { echo "SELECTED";} ?>>Wyoming</option> 
</select> 

回答

0

你可以使用更短的呼应IFS(又名tertiary operation):

例如:

<option value="AL" <?php echo (($_POST['state'] =="AL")?"SELECTED":'') ?>>Alabama</option> 

上面的例子中使用:

(boolean)?(if true):(if false) 
0

你为什么不把状态在一个数组中,然后循环该数组来构造所有<option>

2

这只是一个散列表哭。

$States = array("NH" => "New Hampshire", "CA" => "California"); 

while (list($shortName, $longName) = each($States)) { 
    if($_POST['state'] == $shortName) { echo "SELECTED";} echo $longName; ?></option> 
} 

(确切的语法没有保证,这只是很快写了我的头顶部)。

编辑:好的,的foreach此处将优先考虑:

foreach ($States as $shortName => $longName) { 
    if($_POST['state'] == $shortName) { echo "SELECTED";} echo $longName; ?></option> 
} 
+0

为什么使用list/each而不是更习惯性的key =>使用foreach循环的值语法? – ryeguy 2011-03-16 19:40:09

+0

许多方式导致罗马......但被授予,在这种情况下,foreach将是首选。 – EboMike 2011-03-16 21:19:04

3
$states = array('AL'=>'Alabama','AK'=>'Alaska'...); 

foreach($states as $k=>$state){ 
    echo '<option value="'.$k.'"'.($_POST['state'] == $k ? 'selected="selected"' :''). '>'.$state.'</option>'; 
} 
0

这产生你想要的。比EboMike更完整一点。 (并且不,我没有调试它。)

<?php $states = array("" => "--Select state--", "AL"=> "Alabama", "AK"=>"Alaska", etc=>etc...); ?> 
<label for="state" class="medium">State</label> 
<select name="state"> 
<?php foreach ($i in $states) 
     { 
      echo "<option value=\"" . $i . "\" "; 
      if ($_POST['state'] == $i) //May want to add a strtoupper(...) here 
       echo "SELECTED"; 
      echo ">" . $states[$i] . "</option>\n" 
     } 
?> 
</select> 
相关问题