下拉列表在php中保留以前选择的值

时间:2013-02-25 17:03:21

标签: php

我在php中创建了一个配置文件页面,其中使用html下拉列表的用户选择性别。

html代码如下:

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

用户选择性别后,表单将调度并将数据保存到数据库中。我想要的是下次用户访问配置文件页面时,下拉列表保留用户之前选择的值。例如,如果用户在下拉列表“男性”中选择,则下次他访问个人资料页面进行更改时,下拉列表必须将“男性”显示为选定值(与之前的时间保持一致)。知道如何在PHP中执行此操作吗?

3 个答案:

答案 0 :(得分: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”。希望这有帮助!

答案 1 :(得分:3)

您必须阅读数据库并添加如下的PHP脚本:

<option value="Male" <?php
if ($gender == "Male") { echo " selected"; }
?>>Male</option>
<option value="Female" <?php
if ($gender == "Female") { echo " selected"; }
?>>Female</option>

答案 2 :(得分:2)

您需要做的是为该选项提供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>