2012-11-19 31 views
0

從數據庫中,我拉回來的用戶信息,並在此基礎上,我可以使用CASE語句,確定正確的指標值的HTML下拉的selectedIndex屬性:設置使用PHP

<?php 
    $genderIndex = 0; 
    switch ($displayProperties['gender']) 
    { 
     case "": 
      $genderIndex = 0; 
      break; 
     case "Male": 
      $genderIndex = 1; 
      break; 
     case "Female": 
      $genderIndex = 2; 
      break; 
     case "Other": 
      $genderIndex = 3; 
      break; 
    } 
?> 

在我的形式一個HTML下拉列表(選擇):

<select name="gender" selectedIndex="<?php echo $genderIndex; ?>"> 
    <option value="0"> </option> 
    <option value="Male">Male</option> 
    <option value="Female">Female</option> 
    <option value="Other">Other</option> 
</select><br/> 

問題是,它從來沒有工作,總是在index=0加載頁面,我確信,以驗證是否$genderIndex實際上有預期值(它)。

我在做什麼錯?

回答

2

selectedIndex屬性不採用這種方式,適當使用selectedIndex屬性,您可以查看http://www.w3schools.com/jsref/prop_select_selectedindex.asp的。

取而代之的是將「selected」屬性應用於相應的選項。下面的代碼運行一些速記if/else檢查,並根據您在給定函數中創建的$ genderIndex在適當的地方應用「selected」屬性。

<select name="gender"> 
    <option value="0" <?php echo ($genderIndex==0)?('selected'):(''); ?>"> </option> 
    <option value="Male" <?php echo ($genderIndex==1)?('selected'):(''); ?>>Male</option> 
    <option value="Female" <?php echo ($genderIndex==2)?('selected'):(''); ?>>Female</option> 
    <option value="Other" <?php echo ($genderIndex==3)?('selected'):(''); ?>>Other</option> 
</select><br/> 
+0

完美的作品,謝謝。我使用CodeLobster並且自動完成功能擁有SelectedIndex屬性,所以我認爲我必須使用它。我想這個屬性要麼不起作用,要麼CodeLobster不應該爲這個