HTML选择基于州的用户信息

时间:2012-12-11 01:23:57

标签: php html variables select state

<select name="state" class="input-small" selected="<? if(isset($_SESSION['user'])){ echo $row_login['state']; }?>">
  <option value="AL">AL</option>
  <option value="AK">AK</option>
  <option value="AZ">AZ</option>
  <option value="AR">AR</option>
  <option value="CA">CA</option>

我正在创建用户个人资料编辑部分,并且需要用户预选状态才能显示为默认列表。我该如何设法做到这一点?

最好不涉及jquery的东西,因为看起来应该有一个简单的解决方案来解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:2)

<select name="state" class="input-small">
<?php

$states = array('AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 
'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 
'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'ND', 'OH', 
'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV', 
'WI', 'WY');

foreach ($states as $state)
{
    echo '<option ';
    if(isset($_SESSION['user']) && $row_login['state'] == $state)
    {
        echo 'selected="selected" ';
    }
    echo 'value="' . $state . '">' . $state . "</option>\n";
}

?>
</select>

只需用上面的选项列表替换你的选项列表,它就会动态创建列表然后当打印出每个选项时,将检查该状态选项是否是用户拥有的选项。如果是,那么它将选择它作为默认值。比必须做50次if()语句容易得多。

答案 1 :(得分:0)

一种麻烦的方法是,在每个选项上,如果用户的状态等于选项的状态,则选择回显。假设用户的状态在$row_login['state'];,它将类似于:

<option value="AL" <?php if($row_login['state'] == "AL") echo " selected "; ?> >AL</option>

并为每个选项执行此操作。通常你想以一种自动化的方式做到这一点。