2009-08-26 68 views
10

有什麼方法可以使用以下「類型」代碼在下拉框中設置所選項目?如何在下拉框中設置所選項目

<select selected="<?php print($row[month]); ?>"><option value="Janurary">January</option><option value="February">February</option><option value="March">March</option><option value="April">April</option></select> 

該數據庫保存一個月..我想允許編輯頁面上,他們選擇這個月..但它被預先填充他們的當前設置?

回答

45

您需要設置正確的選項標籤的選擇的屬性:

<option value="January" selected="selected">January</option> 

你的PHP將是這個樣子:

<option value="January"<?=$row['month'] == 'January' ? ' selected="selected"' : '';?>>January</option> 

我通常發現有整潔創建值的數組並通過它循環創建一個下拉菜單。

+0

的Erk對不起,沒看到你最在發佈我的內容前,請閱讀相同的評論我會鼓勵你的,但留給提問者挑選一個勝利者。順便說一句,你的開放PHP標籤有一個錯字?或者是「<?='有效? – 2009-08-26 17:55:58

+0

你的答案是:)讓我更有意義哈哈! – tarnfeld 2009-08-26 17:57:11

+3

<?=是有效的 - 它爲你做了一個回聲 – Greg 2009-08-26 18:26:50

13

您在<option>標記上標記了所選項目,而不是<select>標記。

所以,你的代碼應該讀的東西是這樣的:

<select> 
    <option value="January"<?php if ($row[month] == 'January') echo ' selected="selected"'; ?>>January</option> 
    <option value="February"<?php if ($row[month] == 'February') echo ' selected="selected"'; ?>>February</option> 
    ... 
    ... 
    <option value="December"<?php if ($row[month] == 'December') echo ' selected="selected"'; ?>>December</option> 
</select> 

您可以通過將陣列中的所有月份名稱,並使用過他們一個基本的foreach這個少重複。

+0

或者像這樣:http://stackoverflow.com/ a/3747240/2615737 – 2015-02-23 22:00:41

4

,如果你使用MySQL數據庫,您可以使用此方法:

include('sql_connect.php'); 
$result = mysql_query("SELECT * FROM users WHERE `id`!='".$user_id."'"); 
while ($row = mysql_fetch_array($result)) 
{ 
    if ($_GET['to'] == $row['id']) 
    { 
     $selected = 'selected="selected"'; 
    } 
    else 
    { 
    $selected = ''; 
    } 
    echo('<option value="'.$row['id'].' '.$selected.'">'.$row['username'].' ('.$row['fname'].' '.substr($row['lname'],0,1).'.)</option>'); 
} 
mysql_close($con); 

它會比較,如果用戶在$ _GET [「到」]是一樣的$行[「身份證」]表如果是,則選擇的$將被創建。這是一個私人的郵件系統......

1

簡單的方式

<select class ="dropdownstyle" name="category" selected="<?php print($messageeditdetails[0]['category_id']); ?>"> 

<option value=""><?php echo "Select"; ?></option> 

<?php foreach ($dropdowndetails as $dropdowndetails) { ?> 
    <option <?php if($messageeditdetails[0]['category_id'] == $dropdowndetails['id']) { ?> selected="<?php echo $dropdowndetails['id']; ?>" <?php } ?> value="<?php echo $dropdowndetails['id']; ?>"><?php echo $dropdowndetails['category_name']; ?></option> 
<?php } ?> 
</select> 
3

簡單和易於使用的三元運營商在PHP

<?php $plan = array('1' => 'Green','2'=>'Red'); ?> 
<select class="form-control" title="Choose Plan"> 
<?php foreach ($plan as $id=> $value) { ?> 
    <option value="<?php echo $id;?>" <?php echo ($id== '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option> 
<?php } ?> 
</select> 
0

設置選擇的值理解的例子這是解決方案我想出了...

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <select name="select_month"> 
     <?php 
      if (isset($_POST['select_month'])) { 
       if($_POST["select_month"] == "January"){ 
        echo '<option value="January" selected="selected">January</option><option value="February">February</option>'; 
       } 
       elseif($_POST["select_month"] == "February"){ 
        echo '<option value="January">January</option><option value="February" selected="selected">February</option>'; 
       } 
      } 
      else{ 
       echo '<option value="January">January</option><option value="February">February</option>'; 
      } 
     ?> 
    </select> 
    <input name="submit_button" type="submit" value="Search Month"> 
</form> 
0

它太舊,但我必須添加我的方式以及:)因爲使用它是通用的,特別是在使用靜態下拉值時非常有用。

function selectdCheck($value1,$value2) 
    { 
    if ($value1 == $value2) 
    { 
     echo 'selected="selected"'; 
    } else 
    { 
     echo ''; 
    } 
    return; 
    } 

和你下拉選項,你可以使用這樣此功能,並因爲它與你的所有選擇框適合你可以使用它作爲很多,你可以/下拉菜單

<option <?php selectdCheck($row[month],january); ?> value="january">january</option> 

:)我希望這個功能幫助別人

-3

您可以選擇標籤後,試試這個:

<option value="yes" selected>yes</option> 
<option value="no">no</option> 
+0

我會考慮修改這個答案。你的答案不會觸及php。 – 2018-03-02 20:51:24