Php 下拉列表保留上次输入的选定值

Php 下拉列表保留上次输入的选定值,php,drop-down-menu,Php,Drop Down Menu,我已经用php创建了一个用户配置文件页面。用户插入性别和电话号码,所有这些都存储在数据库中名为profile的表中。我的问题是如何制作下拉列表以保留用户上次输入的选定值。例如,如果用户选择“男性”,则下拉列表应将“男性”保留为选定选项,并且仅当用户决定再次更改时才进行更改 代码如下: <form action="" method="POST" > <?php if ( isset($_GET['success']) === true &&

我已经用php创建了一个用户配置文件页面。用户插入性别和电话号码,所有这些都存储在数据库中名为profile的表中。我的问题是如何制作下拉列表以保留用户上次输入的选定值。例如,如果用户选择“男性”,则下拉列表应将“男性”保留为选定选项,并且仅当用户决定再次更改时才进行更改

代码如下:

<form   action=""   method="POST"  >      
<?php

if ( isset($_GET['success']) === true && empty($_GET['success'])===true ){
    echo'Profile Updated Sucessfuly';
}else{
    if( empty($_POST) === false  &&  empty($errors) === true ){
        $update_data_profile = array('gender' => $_POST['gender'],
                                                 'telephone' => $_POST['telephone']);

        update_user_profile($session_user_id, $update_data_profile);
        header('Location: profile_update.php?success');                             
        exit();
    }else if ( empty($errors) === false ){
        echo output_errors($errors);
    }
?>


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

Telephone <input name="telephone" type="text" size="25" />

<input type="submit" value="" name="submit"/></br>

您可以这样更改代码:

<select name="gender"  id="gender" default="Male">

从中您将获得逻辑

<select name="gender" id="gender">
<?php
  if($_POST['gender'] == 'male' {
    echo '<option value="Male" selected>Male</option>';
  } else {
    echo '<option value="Female" selected>Female</option>';
?> 
</select>


您可以在页面加载期间检索最后一个性别,并添加所选选项

<?php
    result = mysql_fetch_array(mysql_query("SELECT user_id FROM profile ORDER BY user_id DESC LIMIT 1"));
    $gender = $result['gender'];  //you need to change the ['gender'] with what your column name is for gender.
?>
<select name="gender"  id="gender"> 
    <option value=" "> EMPTY </option> 
    <option value="Male" <?php if($gender == "Male") echo "selected='selected'"; ?>>Male</option> 
    <option value="Female" <?php if($gender == "Female") echo "selected='selected'"; ?>>Female</option> 
</select>

空的

? 是的,您已经给了我们您所做工作的代码,但是您试图实现您的问题的目的是什么?提示:还没有,我不知道为什么不在用户会话或cookie中存储这些发布的值,如果它们存在,则在表单中默认值。因此,您希望在用户下次点击页面时从数据库填充下拉列表?是的,可能从数据库填充下拉列表。。。我无法想象任何其他方法最好在XHTML中使用selected=“selected”,属性最小化是被禁止的,并且所选属性必须定义为在我的代码中我应该复制和粘贴您编写的前两行的确切位置,因为这一行$gender=$result['gender']有一个错误;在那部分之前的任何地方我都会帮你更新代码
<?php
    result = mysql_fetch_array(mysql_query("SELECT user_id FROM profile ORDER BY user_id DESC LIMIT 1"));
    $gender = $result['gender'];  //you need to change the ['gender'] with what your column name is for gender.
?>
<select name="gender"  id="gender"> 
    <option value=" "> EMPTY </option> 
    <option value="Male" <?php if($gender == "Male") echo "selected='selected'"; ?>>Male</option> 
    <option value="Female" <?php if($gender == "Female") echo "selected='selected'"; ?>>Female</option> 
</select>