PHP/HTML form's下拉菜单不显示已填写的属性


PHP/HTML form's drop-down menu not displaying already-filled-in attribute

我的html表单中的一个下拉菜单有一个小问题。

在我的网站上,当用户第一次注册时,他需要输入几个属性。其中两个属性是通过从下拉菜单中选择填充的:

(a)性别(下拉菜单包含三个值:
选择……男性女性

(b)国家(下拉菜单包含所有国家的列表)

这两个字段都被赋予了"required"属性。所以,它们必须总是被填满。

当用户填写完所有日期后,表单被提交给MySQL数据库。

目前一切正常

在我的网站上,有一个选项:"编辑个人资料"。当用户单击此按钮时,将显示其所有属性。而且,如果他想改变什么,他有自由这么做。

但是,这里有一个问题:"性别"字段是空的!这意味着:每当用户点击"编辑个人资料"按钮(当然,这很愚蠢!)时,都需要重新输入他的性别

这是我用于注册的表单(我只显示这两个属性——性别和国家)

    Gender :
    <select name="gender" required>
        <option value="">Select....</option>
        <option value="Male">Male</option>
        <option value="Female">Female</option>
    </select>

    Country :
    <select name="country" required>
        <option value="">Country.....</option>
        <option value="Afghanistan">Afghanistan</option>
        <option value="Albania">Albania</option>
        <option value="Algeria">Algeria</option>
        <option value="etc, etc, etc">etc, etc, etc</option>

这个表单可以正常工作。

下面是我编辑配置文件的格式:

 Gender : 
 <select name="gender" required>
 <option value="<?=$_SESSION['gender']?>"><?=$_SESSION['gender']?></option>
 <option value="Male">Male</option>
 <option value="Female">Female</option>
 </select>

 Country : 
 <select name="country" required>
<option value="<?=$_SESSION['country']?>"><?=$_SESSION['country']?></option>
 <option value="Afganistan">Afghanistan</option>
 <option value="Albania">Albania</option>
 <option value="Algeria">Algeria</option>
 </select>
因此:每当用户打开"编辑配置文件"部分时,下拉菜单中的第一个值是用户在注册(从数据库中提取)时已经输入的值。如果他想更改值,他可以从下拉菜单中选择。

"country"属性可以正常工作。

但是,"gender"属性是空的!

这很奇怪,因为它们都以完全相同的方式编码。

echo '<pre>'
print_r($_SESSION);

是否包含性别?:)如果你的答案是否定的,试着检查你的php脚本和查询,你从db提取这些值。