2013-02-28 95 views
1

我已經在php中創建了一個用戶配置文件頁面。用戶插入性別和電話號碼,所有這些都存儲在數據庫中的一個稱爲配置文件的表中。我的問題是,如何讓下拉列表保持用戶以前輸入的選定值。例如,如果用戶選擇男性,則下拉列表應將男性保留爲選定的選項,並且僅當用戶決定再次更改時才更改。下拉列表保持選定的最後一個值輸入php

下面是代碼:

<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> 

這是我用在數據庫中插入數據的功能:

function update_user_profile($user_id, $update_data_profile){ 

    $result = mysql_query("select user_id from profile where user_id = $user_id limit 1"); 

    $user_id = $update_data_profile['user_id'] ; 

    if(count($update_data_profile)){ 

    $columns = array(); 
    $values = array(); 

    foreach($update_data_profile as $field => $data){ 
    $columns[] = $field; 
    $values[] = $data; 
    } 
    } 

mysql_query(" INSERT INTO `profile` (" . implode(",", $columns) .") values ('" . implode("','", $values) . "')") or die (mysql_error()); 
+0

[你有什麼試過](http://whathaveyoutried.com)?是的,你給我們提供了你已經完成的代碼,但你試圖完成你的問題的是什麼?提示:[選擇HTML選項](http://www.w3schools.com/tags/att_option_selected.asp) – UnholyRanger 2013-02-28 17:03:07

+0

什麼都還不知道如何 – 33528 2013-02-28 17:09:58

+0

爲什麼不把這些張貼值存儲在用戶會話或cookie中,以及如果他們是目前,默認值的格式爲 – Waygood 2013-02-28 17:13:50

回答

-1

你可以改變這樣的代碼:

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

由此您將得到邏輯

<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> 
+0

最好用selected =「selected」 – Waygood 2013-02-28 17:17:13

+0

爲什麼最好? – 2013-02-28 17:21:01

+0

在XHTML中,屬性最小化是被禁止的,並且所選屬性必須被定義爲

0

您可以在頁面加載期間檢索最後一個性別並添加所選選項。

<?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> 
+0

在我的代碼中,我應該複製並粘貼你寫的前兩行,因爲我得到這個錯誤行$ gender = $ result ['gender']; – 33528 2013-02-28 17:33:51

+0

之前的任何地方,你可以放在我會更新你的代碼 – 2013-02-28 17:47:10

相關問題