我有一个用户配置文件的编辑页面。一个选项是'Country‘,其中包含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 :(..有没有一种更好的(更干净的)方法来做到这一点,而不是把所有的国家都放入数据库?
发布于 2012-08-27 03:31:24
有,使用foreach循环迭代$countries数组,并生成选项,匹配国家/地区值以查找选定的。
示例:
$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>发布于 2012-08-27 03:33:30
如果我没弄错你想要什么,我建议使用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>';
}发布于 2012-08-27 04:27:12
除了其他答案之外,如果您不能将国家/地区存储在数据库中,则可以考虑将它们存储在文本文件中。读入它们并迭代它们。这将使添加新国家/地区变得更容易,而无需更改代码。这只是个想法。
https://stackoverflow.com/questions/12133207
复制相似问题