0

我有这个国家的下拉列表:

<select name="country">
    <option value="">Country...</option>
    <option value="Afganistan">Afghanistan</option>
    <option value="Albania">Albania</option>
    <option value="Algeria">Algeria</option>
    <!-- Removed several options as they are not needed for question -->
    <option value="Zaire">Zaire</option>
    <option value="Zambia">Zambia</option>
    <option value="Zimbabwe">Zimbabwe</option>
</select>

当用户编辑他们的个人资料时,我希望默认选择用户选择的国家(在数据库中)。

例子

当用户注册时,Egypt被选中。当用户编辑他们的个人资料时,我希望这个下拉列表Egypt默认选择(直到更改)。

4

3 回答 3

1

只需将selected属性添加到option用户在创建帐户时选择的属性。

基本理念

前锋

<?php
$country_list = '<select name="country">';
$selected_country = $user_info['country'];
foreach($countries as $country){
 $is_selected = ($country===$selected_country);
 $country_list .= '<option value="'.$country.'"'.($is_selected ? ' selected' : '').'>$country</option>';
}
$country_list .= '</select>';

尽管

<?php
...
$country_list = '<select name="country">';
$selected_country = $user_info['country'];
$stmt->bind_result($country);
while($mysqli->fetch()){
 $is_selected = ($country===$selected_country);
 $country_list .= '<option value="'.$country.'"'.($is_selected ? ' selected' : '').'>$country</option>';
}
$country_list .= '</select>';

注意:虽然它会消耗更多资源,但我建议至少使用一系列国家/地区,但最好将国家/地区存储在数据库中。数据库的原因是如果您更改了一个国家/地区的名称(例如,苏联到俄罗斯),您也不必为每个用户更新它(因为他们将链接到表id中的countries)。我建议使用数据库或数组,因为迟早您可能会option在某个时间点更改列表的标记,并且将列表放在数组中可以更改单行,而不是列出的每个国家/地区一次。

于 2012-04-06T14:50:06.580 回答
0

html语法是这样的:

<option value="AAAA" selected>label</option>

因此,在 PHP 中,从数据库中加载您的值和您选择的值,当您在循环中打印它们时,如果当前打印的是选定的,则只回显“选定”。

于 2012-04-06T14:44:59.263 回答
0

从数据库值定义一个变量。将整个<select>标签存储为变量。查找并用选定的属性替换选​​定的选项值。

$country_selected_value;
// defined from database
$country_select = '<select name="country">...</select>';
// ... represents your options
$value_search = 'value="'.country_selected_value.'"';
// what to look for in the select
echo str_replace($value_search , $value_search.'" selected="selected"', $country_select);
// displaying the select field with the selected option

如果您需要帮助从数据库中获取数据,那么 SO 上已经有很多这样的主题。

于 2012-04-06T14:54:27.230 回答