<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的东西,因为看起来应该有一个简单的解决方案来解决这个问题。谢谢!
答案 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>
并为每个选项执行此操作。通常你想以一种自动化的方式做到这一点。