<select>下拉默认值</select>

时间:2012-09-06 06:10:42

标签: php html drop-down-menu 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>";
    }
}

在提交'搜索'按钮时,此代码显示飞机表中的数据。允许用户使用(*)符号更新数据。

enter image description here

由于默认情况下状态如下(可用,不可用),我更改了此

 <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'>,但它不起作用。任何帮助将不胜感激。谢谢!

8 个答案:

答案 0 :(得分:11)

根据您的selected="selected"

,只需选择$row['status']
<option selected="selected" value="available">Available</option>

答案 1 :(得分:3)

将可用和不可用写入数组

$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>

并在每个循环中检查数组中的值是否与变量中的值相同,如果是,我们将选中的值放在那里

理解逻辑?

答案 2 :(得分:1)

<?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>

答案 3 :(得分:1)

您可以使用以下代码执行此操作:

<?php
$stat=$row['status'];
$selected_a = ($stat == 'Available') ? 'selected' : '' ;
$selected_b = ($stat == 'Not Available') ? 'selected' : '' ;
?>
<select name=st> 
<option <?php echo $selected_a; ?> value='Available'>Available</option> 
<option <?php echo $selected_b; ?> value='Not Available'>Not Available</option> 
</select>

答案 4 :(得分:1)

您可以使用其他选项标记定义变量值,并将其标记为选中,如:

<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>

答案 5 :(得分:0)

<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>

根据相关字段的值,选择基本上为选项选择=“已选择”。

答案 6 :(得分:0)

声明像

这样的数组中的选项

$ arr = array(“available”=&gt;“available”,“unavailable”=&gt;“unavailable”);

并像这样输入下拉列表

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

这是像codeigniter这样的框架中常用的方法..我认为它也适用于核心php ..

答案 7 :(得分:0)

这是我的第一次,但是我尝试在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>
  

假设数据库中的列名称为“状态”,请尝试一下对我有用