3

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

html代码如下:

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

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

4

3 回答 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 变量并且最后一个是该特定选项,那么所有这一切都是在选项标记中插入“选定”。希望这可以帮助!

于 2013-03-28T04:26:06.140 回答
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> 
于 2013-02-25T17:11:55.967 回答
3

您必须阅读数据库并添加一个 php 脚本,例如:

<option value="Male" <?php
if ($gender == "Male") { echo " selected"; }
?>>Male</option>
<option value="Female" <?php
if ($gender == "Female") { echo " selected"; }
?>>Female</option>
于 2013-02-25T17:08:07.393 回答