我有一个用户个人资料的编辑页面。一个选项是“国家”,其中包含php文件中列出的所有国家/地区(国家/地区未从数据库加载)。在用户编辑个人资料页面上,我希望能够从列表中选择当前存储的选项值。
我可以这样做:
<option value="Afghanistan" <?php if ($results['country'] == 'Afghanistan') echo 'selected';?> >Afghanistan</option>
<option value="Albania" <?php if ($results['country'] == 'Albania') echo 'selected';?> >Albania</option>
<option value="Algeria" <?php if ($results['country'] == 'Algeria') echo 'selected';?> >Algeria</option>
<option value="American Samoa" <?php if ($results['country'] == 'American Samoa') echo 'selected';?> >American Samoa</option>
// The rest of the countries here :(..
如果没有将所有国家/地区纳入数据库,是否有更好(更清洁)的方法?
答案 0 :(得分:2)
使用$countries
循环迭代foreach
数组,并生成选项,匹配国家/地区值以查找所选内容。
示例:
$countries = array("Afghanistan", "Albania", "Algeria", "American Samoa");
foreach ($countries as $country) {
echo "<option value='$country'";
if ($country == $results["country"]) {
echo " selected";
}
echo ">$country</option>\n";
}
输出($results["country"] = "Albania"
):
<option value='Afghanistan'>Afghanistan</option>
<option value='Albania' selected>Albania</option>
<option value='Algeria'>Algeria</option>
<option value='American Samoa'>American Samoa</option>
答案 1 :(得分:2)
如果我理解你想要什么,我建议使用foreach
循环:
$countries = array(
"Afghanistan",
"Albania",
"Algeria",
"American Samoa"
// ...
);
foreach($countries as $country) {
echo '<option value="'.$country.'"';
if($country == $results['country']) {
echo ' selected="selected"';
}
echo '>'.$country.'</option>';
}
答案 2 :(得分:0)
除了其他答案,如果您无法将国家/地区存储在数据库中,您可以考虑将它们存储在文本文件中。读取它们并迭代它们。这样可以更轻松地添加新国家/地区而无需更改代码。只是一个想法。