【问题标题】:Set default value for HTML select control in PHP在 PHP 中为 HTML 选择控件设置默认值
【发布时间】:2012-05-21 01:35:24
【问题描述】:

我有 50 个状态的 html 选择下拉菜单,并且我在 PHP 中有一个默认状态值。有没有比设置默认选择值更简单的方法

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

50 次?

换句话说,我必须检查每个选项吗?

【问题讨论】:

  • 您可以先设置默认状态,然后在循环中跳过该检查。在某些时候,您将不得不像这样设置selected

标签: php html


【解决方案1】:

我会创建一个状态缩写数组并循环遍历它们,检查状态是否与默认值匹配,然后附加必要的 HTML。

这是一个快速(功能性)代码示例。请注意,如果需要,您可以将数组缩短为仅两个字母的缩写:

<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>

【讨论】:

  • 我认为 Yarin 是在循环创建这个。否则检查没有意义。
  • 此外,由于他有 5 个下拉菜单,每个下拉菜单都选择相关状态,那么他可以创建一个名为 createStateDropDown($stateName) 的函数或其他任何函数,并在每次需要时调用它,而不是每个都构建数组循环时间
  • @Smamatti - 根据问题中的代码,OP 正在检查每个状态的代码并编写 50 个选项“每个状态 50 次?”。
  • 抱歉措辞不好-澄清了问题-只有一个下拉菜单。谢谢。
猜你喜欢
  • 2014-12-25
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多