2012-04-23 44 views
0

我正在做一個下拉框,在那裏我可以說我們有「option1」和「option2」,dropbox選擇(標記)「option1」,然後我們選擇「option2」 ,我希望它在下拉框中標記「option2」,但它不標記它。PHP:在下拉框中選定的值

我試圖避免在這個上做JavaScript,所以我不知道我是否只能在PHP上做到這一點。

建議?謝謝!

編輯。 那麼問題是,我不知道我建立下拉菜單之前有多少選項。我從數據庫中的表中生成一個數組,並根據該數據生成選項。 代碼:

<select name="department"> 
      <?php foreach(bloggModelControler::getDepartments($_SESSION['user']) as $tempDepartment){ 
       if(strcmp($tempDepartment, $department) == 0){ 
        $selected = ".selected='selected'."; 
       }else{ 
        $selected = ".selected=''."; 
       } 
       $dropdown = "<option \"$selected\" value=\"$tempDepartment\">\"$tempDepartment\" Selected</option>"; 
       echo $dropdown; 
}?>   
</select> 

和$部門:

<?php 
     if(isset($_POST['department'])){ 
      $department = $_POST['department']; 
     }else{ 
      $departments = bloggModelControler::getDepartments($_SESSION['user']); 
      $department = $departments[0]; 
     } 
    ?> 
+0

「保管箱的選擇(標誌)的‘選項1’,然後我們選擇‘選項2’,我希望它標誌着」選項2「在下拉框中,但它不標記它。」你什麼意思?您選擇價值但重置某些項目?對不起帽子 – squarephoenix 2012-04-23 15:19:10

+0

是的,它重置並仍然標記「option1」 – Alexein 2012-04-23 15:19:48

+0

不清楚...您可以附上一段HTML/PHP嗎? – dAm2K 2012-04-23 15:20:22

回答

2

基於更新的問題更新答案(含代碼)

不要把文本變量裏面的時期選擇了」 」。

if(strcmp($tempDepartment, $department) == 0){ 
       $selected = "selected='selected'"; 
      }else{ 
       $selected = "selected=''"; 
      } 

以前的答案

在生成HTML的選擇框你的PHP代碼,你必須指定選擇哪個選項。

例如:

<select name="selectbox"> 
    <option <?php if ($_POST['selectbox'] == 'option1') echo 'selected="selected"';?>>option1</option> 
    <option <?php if ($_POST['selectbox'] == 'option2') echo 'selected="selected"';?>>option2</option> 
</selected> 

替代語法:

<select name="selectbox"> 
    <option <?= ($_POST['selectbox'] == 'option1')? 'selected="selected"' : '';?>>option1</option> 
    <option <?= ($_POST['selectbox'] == 'option2')? 'selected="selected"' : '';?>>option2</option> 
</selected> 
+0

我懷疑你的權利,你可以用'<?='和三元運算符來減少這段代碼; p – 2012-04-23 15:29:04

+0

@LawrenceCherone它並沒有縮短,但我添加了你所建議的替代語法以及。 – AndrewR 2012-04-23 15:33:24

+0

+1;每行4字節 – 2012-04-23 15:46:10