2013-11-26 116 views
4

這裏是我寫的代碼,請幫我解決這個問題。如何在php中提交表單時保留下拉列表的值?

<select name="gender" id="gender"> 
        <option value="M"<?php if(isset($_POST['gender'])=="M"){echo "selected='selected'";}?>>Male</option> 
        <option value="F"<?php if(isset($_POST['gender'])=="F"){echo "selected='selected'";}?>>Female</option> 
        <option value="O"<?php if(isset($_POST['gender'])=="O"){echo "selected='selected'";}?>>Other</option> 
        </select> 

當我提交在下拉列表中選擇男形式,它應該保持選擇的值,直到我改變,在未來的提交表單。

在上面的代碼中,如果我選擇男性並提交表單,它會顯示我其他人。

所以請您需要一點幫助。 先謝謝那些想解決問題的人。

+0

您需要在深入介紹 – Steve

+0

提供更多的細節,如當前的代碼,更請發表您的代碼。 – Christos

回答

6

,如果你使用下面這將是快速和更好: -

<select name="gender"> 
<option value="Male" <?php echo (isset($_POST['gender'] && $_POST['gender'] == 'Male')?'selected="selected"':''; ?> >Male</option> 
<option value="Female" <?php echo (isset($_POST['gender'] && $_POST['gender'] == 'Female')?'selected="selected"':''; ?> >Female</option> 
<option value="Other" <?php echo (isset($_POST['gender'] && $_POST['gender'] == 'other')?'selected="selected"':''; ?> >Other</option> 
</select> 
+1

非常感謝。這就是我一直在尋找的東西。 –

+1

如果你正在尋找它,然後批准答案 –

5

假設你有這樣的:

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

然後在你提交的網頁,地方:

<select name="gender"> 
    <option value="Male" <?php if ($_POST['gender'] == 'Male') echo 'selected="selected"'; ?> >Male</option> 
    <option value="Female" <?php if ($_POST['gender'] == 'Female') echo 'selected="selected"'; ?> >Female</option> 
    <option value="Other" <?php if ($_POST['gender'] == 'Other') echo 'selected="selected"'; ?> >Other</option> 
</select> 
+0

我編寫的代碼相同,但不起作用。完全一樣,甚至沒有一個字母丟失。 –

+0

這對我有用。標記的答案拋出錯誤。 – Hunnenkoenig

0

,而不是

 <option value="M"<?php 
    if(isset($_POST['gender'])=="M") 
    --------^^^^^^^^^^^^ 
    {echo "selected='selected'";}?>>Male</option> 

嘗試

<option value="M"<?php if((!empty($_POST['gender']) && $_POST['gender']=="M") 
         ------^^^^^^^^ 
    {echo "selected='selected'";}?>>Male</option> 
+0

我刪除了OP與比較運算符一起使用的isset函數。 –

+0

是的,我看過一遍之後就看到了。如果未設置「性別」,那麼這將會出現問題(注意選項元素的中間)。基本上'if(!empty($ _ POST ['gender'])&& $ _POST ['gender'] =='M')'是最好的。 – h2ooooooo

+0

@ h2ooooooo感謝您的線索,更新了我的答案 –

相關問題