在PHP中保留下拉列表的先前选择值

3

我已经在php中创建了一个个人资料页面,用户可以使用html下拉列表选择性别。

以下是html代码:

Gender<select name="gender"> 
    <option value=" "> EMPTY </option> 
    <option value="Male">Male</option> 
    <option value="Female">Female</option> 
</select> 

用户选择性别后,表单将被调度并将数据保存到数据库中。我想要的是下一次用户访问个人资料页面时,下拉列表保留用户之前选择的值。例如,如果用户在下拉列表中选择了“男性”,下一次他访问个人资料页面进行更改时,下拉列表必须显示“男性”作为选定的值(保留上一次选择)。有任何用PHP实现这个功能的想法吗?


你可以使用 JavaScript 将选项设置为已选择。 - Eugen
我已经尝试了下面得到的两个答案...但仍然不起作用。 - 33528
@Stefanos - 你的代码全部是什么?你可以把它放到Pastebin里面吗? - Chris Forrence
3个回答

4

如果您正在使用表单,则有一种非常简单的方法来完成此操作。此外,您可能需要在使用页面时使用isset()。

<select name="gender">
    <option value="male" <?php echo isset($_GET["gender"]) && $_GET["gender"] == "male" ? "selected" : "" ?>>Male</option>
    <option value="female" <?php echo isset($_GET["gender"]) && $_GET["gender"] == "female" ? "selected" : "" ?>>Female</option>
</select>

如果$_GET变量已设置且上一个选项是该特定选项,则此操作仅将"selected"插入到选项标记中。希望这有所帮助!


3
你需要读取数据库并添加一个类似以下的php脚本:
<option value="Male" <?php
if ($gender == "Male") { echo " selected"; }
?>>Male</option>
<option value="Female" <?php
if ($gender == "Female") { echo " selected"; }
?>>Female</option>

3
您需要做的是给选项添加selected属性。假设您在会话中存储个人资料信息并且服务器启用了短标记,您可以按以下方式操作:
Gender: <select name="gender"> 
    <option value=" "> Not Selected </option> 
    <option value="Male"<?=$_SESSION['gender'] == "Male" ? ' selected="selected"' : ''?>>Male</option> 
    <option value="Female"<?=$_SESSION['gender'] == "Female" ? ' selected="selected"' : ''?>>Female</option> 
</select> 

上帝保佑你,Chris!你为我的期末作业赢得了额外的分数! - Binaya Thapa Magar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接