2013-04-05 25 views
0

我有一个插件,我使用的是使用数组创建美国状态的下拉列表,然后使用循环来填充选择框。 这里是阵列PHP Array创建状态下拉列表 - 需要将特定状态设置为默认状态

//Define the US State Array to be used to generate the STATE select box 
    $usStates = array(
    "AL" => "Alabama", 
    "AK" => "Alaska", 
    "AZ" => "Arizona", 
    "AR" => "Arkansas", 
    "CA" => "California", 
    "CO" => "Colorado", 
    "CT" => "Connecticut", 
    "DE" => "Delaware", 
    "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" 
    ); 

和环路......

//Loop through the state array to build the state select box 
    foreach($usStates as $key => $value) { 
    $selected = ""; 
    if($_POST['orderState'] == $key) $selected = "selected"; 
    $wpgft_post_content .= '<option value="'.$key.'" ' . $selected . '>'. $value .'</option>'; 
    } 
    $wpgft_post_content .='</select>'; 
    if($error_state) $wpgft_post_content .='<br /><span class="wpgft_error">'.$error_state.'</span></dd>'; 
    } else { 
    $wpgft_post_content .='<dt>State/Province/Region:</dt>'; 
    $wpgft_post_content .= '<select name="orderState"'.$ro.'>'; 

如果我需要设置科罗拉多州为默认状态,其中/我该怎么办呢?

回答

0
$wpgft_post_content .= 
    '<option value="'.$key.'" ' . ($key==='CO'?'selected':'') 
    . '>' . $value . '</option>'; 
+0

为什么使用===来比较字符串? – Sam 2013-04-05 19:16:30

+0

@Sam你为什么不呢? – Neal 2013-04-05 19:20:25

+0

是不寻常的,只是==为检查字符串值 – Sam 2013-04-05 19:24:04

0

设置另一个var,它可以是您的$ _POST值,也可以是科罗拉多,如果它是空的。然后使用您的循环内的var来检查/设置selected属性:

if (isset($_POST['orderState']) && !empty($_POST['orderState'])) { 
    $state = $_POST['orderState']; 
} else { 
    $state = 'CO'; 
} 

foreach($arr as $key => $val) { 
    $selected = ($state == $val) ? 'selected': ''; 
}