2010-01-22 25 views
1

我在我的網站上有一個博客和問題部分,有類別。當用戶撰寫問題或博客時,可以通過下拉菜單選擇您的類別。當您編輯其中任何一個時,您可以選擇通過下拉菜單更改您的類別。當您去編輯博客時,類別下拉菜單是標準樣式的下拉菜單,我用<option value="1" <?php if($blog->category == "1"){echo "selected";}?> >Art and Literature</option>來顯示先前選擇的類別。我正在接受另一位開發人員離開的地方,因此對於問題,他將這個下拉列表放在while循環中。作爲一個新手,我不知道如何「回聲選擇」在while循環,使其拉先前選擇cat.Here是循環如何在while循環中選擇回顯?

     <select name="category"> 
          <option value="null">Choose Category</option> 
          <?php 
          $query = "SELECT * FROM `Categories_questions` ORDER BY `CategoryName` ASC"; 
          $request = mysql_query($query,$connection); 
          while($result = mysql_fetch_array($request)) { 
           echo "<option value='" . $result['id'] . "'>" . $result['CategoryName'] . "</option>"; 
          } 
          ?> 

         </select> 

回答

5

你可以這樣做完全一樣的方式。假設您獲得了$博客對象,其中的代碼運行:

while($result = mysql_fetch_array($request)) { 
    $selected = ($result['id']==$blog->category) ? ' selected="selected"' : ''; 
    echo "<option value='" . $result['id'] . "' ".$selected.">" . $result['CategoryName'] . "</option>"; 
} 
0
while($result = mysql_fetch_array($request)) { 
    $selected = ($result['id'] == $blog->category) ? "selected" : ""; 
    echo "<option value='" . $result['id'] . "' $selected>" . $result['CategoryName'] . "</option>"; 
} 

如果你不知道那是什麼做的,這是一個ternary operator。 Essentialy,它會檢查$result['id']是否等於當前的$blog->category,如果是,那麼$selected將包含字符串「selected」。如果沒有,它只包含一個空字符串。然後,在您的<option>元素中,您要麼輸出空字符串,要麼「已選中」。

0

我會做這樣的事情:

while($result = mysql_fetch_array($request)) { 
    $value = $result['id']; 
    $selected = ""; 
    if (check_if_selected($value)) { 
     $selected = "selected"; 
    } 
    echo "<option value='" . $value . "' " . $selected . ">" . 
      $result['CategoryName'] . "</option>"; 
} 
+2

凡 「check_if_selected」 定義?這不是PHP中的內置函數。 – Jage 2010-01-22 18:25:39