簡體   English   中英

<select>下拉默認值

[英]<select> dropdown default value

我有這個代碼:

if(isset($_POST['search']))
{
    $res1=mysql_query("SELECT * FROM aircraft where acode = '$_POST[ac]'") or die(mysql_error());
    while($row=mysql_fetch_array($res1))
    {
        $airc=$row['acode'];
        $amode=$row['amodel'];
        $stat=$row['status'];
        $rem=$row['remarks'];

    echo "<center><table><form name=\"frmMain\" method=\"post\"> 
        <tr><td><font face=consolas><b>Aircraft Code:</b></font></td><td><input type=text name=arc value='$airc' readonly=readonly></td></tr>
        <tr><td><font face=consolas><b>Aircraft Model:*</b></font></td><td><input type=text name=am value='$amode'></td></tr>
        <tr><td><font face=consolas><b>Status:*</b></font></td><td><input type=text name=st value='$stat'></td></tr>
        <tr><td><font face=consolas><b>Remarks:*</b></font></td><td><input type=text name=rm value='$rem'></td></tr></table>";
    }
}

在提交“搜索”按鈕上,此代碼顯示飛機表中的數據。 允許用戶使用 (*) 符號更新數據。

在此處輸入圖片說明

由於默認情況下狀態如下(可用,不可用),我改變了這個

 <tr><td><font face=consolas><b>Status:*</b></font></td><td><input type=text name=st value='$stat'></td></tr>

對此,

<tr><td><font face=consolas><b>Status:*</b></font></td><td><select name=st>
    <option value=Available>Available</option>
    <option value='Not Available'>Not Available</option>
</select></td></tr>

但我希望下拉菜單的默認值取決於$stat=$row['status']; 因為這是一個更新表格。

如果正在檢索的數據的狀態為“可用”,則下拉列表的默認值應為“可用”。

我怎樣才能做到這一點? 我試過<select name=status value='$stat'>但它不起作用。 任何幫助將不勝感激。 謝謝!

只需根據您的$row['status']selected="selected"放在選項上,

<option selected="selected" value="available">Available</option>

將可用和不可用寫入數組

$theArray = array("Available","Not Available");

循環數組:

<tr><td><font face=consolas><b>Status:*</b></font></td><td><select name=st>
<?php
foreach ($theArray as $key => $value) {
    if ($value == $stat) {
        echo('<option selected="selected" value='.$value.'>'.$value.'</option>');
    } else {
        echo('<option value='.$value.'>'.$value.'</option>');
    }
}
?>
</select></td></tr>

在每個循環中,我們檢查數組中的值是否與變量中的值相同,如果是,我們將選定的值放在那里

明白邏輯嗎?

<select name=status>
<option value="available" <?php if($row['status']=="available") echo "selected=\"selected\""; ?>>Available</option>
<option value="unavailable" <?php if($row['status']=="unavailable") echo "selected=\"selected\""; ?>>Unvailable</option>
</select>

基本上 echo selected="selected" 取決於相關字段的值。

<?php
$status = "navail";
?>
<select name="sel">
<option value="avail" <?php if($status == "avail") echo "SELECTED";?> > Avail </option>
<option value="navail" <?php if($status == "navail") echo "SELECTED";?> > Navail </option>
</select>

您可以從數據庫中設置選定的下拉選項,如下所示:

<select name="status"> 
<option <?php echo ($row['status'] == 'Available') ? 'selected' : '' ?> value='Available'>Available</option> 
<option <?php echo ($row['status'] == 'Not Available') ? 'selected' : '' ?> value='Not Available'>Not Available</option> 
</select>

您可以使用附加選項標簽定義變量值,並將其標記為已選擇,例如:

<select name="role" id="role">
<!-- This is default define value using php variable $r -->
<option selected="selected" value="<?php echo $r; ?>" disabled="disabled"><?php echo $r; ?></option>

<!-- Other options values -->
<option value="2">Option-2</option>
<option value="2">Option-2</option>
</select>

在數組中聲明選項,如

$arr = array("available" => "available","unavailable" => "unavailable");

並像這樣輸入下拉菜單

echo form_dropdown("st", $arr, set_value("st", (isset($row['status'];) ? $row['status']; : ""))

這是 codeigniter 等框架中常用的方法..我認為它也適用於核心 php..

這是我第一次來這里,我嘗試在 php 中使用基本原理,不知道這是否對您有幫助,但是如果您嘗試獲取您在數據庫中輸入的默認值,然后再次編輯它,我建議您嘗試這個

<select name="st">
<?php if($row['status']=="Available"){?><option value="Available">Available</option><?php }?>
<?php if($row['status']=="Unavailable"){?><option value="Unavailable">Unavailable</option><?php }?>
</select>

假設您的數據庫中的列名是“狀態”,試一試對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM