我在php中创建了一个配置文件页面,其中使用html下拉列表的用户选择性别。
html代码如下:
Gender<select name="gender">
<option value=" "> EMPTY </option>
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
用户选择性别后,表单将调度并将数据保存到数据库中。我想要的是下次用户访问配置文件页面时,下拉列表保留用户之前选择的值。例如,如果用户在下拉列表“男性”中选择,则下次他访问个人资料页面进行更改时,下拉列表必须将“男性”显示为选定值(与之前的时间保持一致)。知道如何在PHP中执行此操作吗?
答案 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>