2013-11-03 75 views
3

我想單擊編輯按鈕更新表單,然後所有信息都正確顯示,但狀態值顯示的是所有時間相同的打開選項。我不知道爲什麼它顯示相同的開放狀態和我的當前狀態但它顯示了所有的時間開放請幫我解決這個問題,感謝如何使用預先選擇的選項顯示下拉列表

,這是我的表單代碼的用戶名顯示正確,但狀態沒有顯示正確

<p><label class="field" for="username">UserName:</label> 
    <input name="username" type="text" id="username" value="<?php echo $username; ?>" size="50" /> 
    </p> 
    <p> 

       <label class="field" for="Status">Status</label> 
        <select name="status" id="status" value="<?php echo $status; ?>" > 
         <option value="open">Open</option> 
         <option value="done">Done</option> 
         <option value="pending">Pending</option> 
         <option value="working">Working</option> 
        </select> 
     </p> 

回答

2

使用selected屬性。

<select name="status" id="status"> 
    <option value="open" <?php if($status=="open") { echo "selected"; } ?> >Open</option> 
    <option value="done" <?php if($status=="done") { echo "selected"; } ?> >Done</option> 
    <option value="pending" <?php if($status=="pending") { echo "selected"; } ?> >Pending</option> 
    <option value="working" <?php if($status=="working") { echo "selected"; } ?> >Working</option> 
</select> 
+0

我代替我們的代碼,但它再次不工作 – msalman

+0

@ user2938105什麼樣的價值要在'$ status'得到些什麼? –

+0

同樣開放...... – msalman

0

您需要選定的標籤。以這種方式修改您的表格

<select name="status" id="status"> <!-- value removed, there's no use of it here --> 
    <option value="open" <?php if ($status=="open") {echo "selected"}?>>Open</option> 
    <option value="done" <?php if ($status=="done") {echo "selected"}?>>Done</option> 
    .... 
</select> 
0

使用所選屬性作爲選項。

更改代碼

<select name="status" id="status"> 
    <option value="open" <?php selected($status, 'open'); ?>>Open</option> 
    <option value="done" <?php selected($status, 'done'); ?>>Done</option> 
    <option value="pending" <?php selected($status, 'pending'); ?>>Pending</option> 
    <option value="working" <?php selected($status, 'working'); ?>>Working</option> 
</select> 

<?php 
function selected($selected_value, $value) { 
    if($selected_value === $value) { 
     echo 'selected=true'; 
    } 
} 
?> 
+0

不工作bro – msalman

+0

它顯示致命錯誤。 – msalman

1

這是錯誤的方式,正確的方法是使用這樣,

<select name="status"> 
<?php 
$options = array("open","done","pending","working"); 
$selected = "done"; 
foreach($options as $option){ 
    if($selected==$option){ 
     echo '<option value="'.$option.'" selected="selected">'.ucfirst($option).'</option>'; 
    }else{ 
     echo '<option value="'.$option.'">'.ucfirst($option).'</option>'; 
    } 
} 
?> 
    </select> 
+0

親愛它顯示現在做地位,但我在MySQL的許多查詢一段時間內的狀態正在等待一些時間狀態打開,所以我想顯示mysql的狀態在這裏如果MySQL數據的狀態做,然後它會顯示完成,如果MySQL數據狀態爲開啓然後它會顯示出開放明白我的意思 – msalman

+0

OK,電子郵件/陪我聊天[email protected]如果我是在網上,我會聊天否則您發送電子郵件,但我可能需要一些時間在回答如果我正忙於 –

+0

標題問題是,「如何在選擇更改中顯示正確的值」和標籤是JavaScript,PHP,MySQL。這是不正確的。這看起來像JavaScript的變化事件。它應該被改爲「如何顯示一個預先選定的選項下拉列表」 –

1

如果你真的想嵌入在選項標籤中的地位,你應該使用'selected'屬性來選擇標籤選項。這是您與正確處理修改後的代碼: -

<p><label class="field" for="username">UserName:</label> 
<input name="username" type="text" id="username" value="<?php echo $username;?>"  size="50" /> 
</p> 
<p> 

      <label class="field" for="Status">Status</label> 
       <select name="status" id="status" > 
        <option value="open" <?php echo $status == 'open' ? 'selected' : ''; ?>>Open</option> 
        <option value="done" <?php echo $status == 'done' ? 'selected' : '' ;?>>Done</option> 
        <option value="pending" <?php echo $status == 'pending' ? 'selected' : '' ; ?>>Pending</option> 
        <option value="working" <?php echo $status == 'working' ? 'selected' : '' ; ?>>Working</option> 
       </select> 
    </p> 
+0

dhunju烏爾代碼顯示只有打開狀態我已經做了狀態和掛起狀態在我的數據,因此它顯示正確掛起狀態,但它不更新其他狀態正確 – msalman

+0

dhunju現在我解決我的datbase一個問題...拼寫錯誤做,而且代碼這樣做Captial字母錯誤,謝謝你 – msalman

+0

確實'區分大小寫'。大。 – dhunju

相關問題