【问题标题】:<select> dropdown default value<select> 下拉默认值
【发布时间】:2012-08-30 21:51:37
【问题描述】:

我有这个代码:

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']; 因为这是一个更新表格。

如果要检索的数据的状态为“Available”,则下拉菜单的默认值应为“Available”。

我怎样才能做到这一点?我试过&lt;select name=status value='$stat'&gt;,但它不起作用。任何帮助将不胜感激。谢谢!

【问题讨论】:

标签: php html drop-down-menu default-value


【解决方案1】:
<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>

根据相关字段的值,基本上为选项回显 selected="selected"。

【讨论】:

  • 基本的php代码编辑。我可以给你打出来,但你真的应该自己弄清楚。提示:为您的字段/命令使用单独的 echo 命令。
【解决方案2】:
<?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】:

    只需将selected="selected" 放在选项上,具体取决于您的$row['status']

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

    【讨论】:

      【解决方案4】:

      您可以从数据库中设置选定的下拉选项,如下所示:

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

      【讨论】:

      • 专业提示:重复选项的文本作为值声明绝对没有优势/好处。 “您可以做到”并不是对您的 sn-p 工作原理或为什么它是一个好主意的解释。
      【解决方案5】:

      将可用和不可用写入数组

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

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

      理解逻辑吗?

      【讨论】:

      • 专业提示:重复选项的文本作为值声明绝对没有优势/好处。
      【解决方案6】:

      在数组中声明选项

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

      然后像这样输入下拉菜单

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

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

      【讨论】:

        【解决方案7】:

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

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

        【讨论】:

          【解决方案8】:

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

          假设你的数据库中的列名是'status',试一试对我有用

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-09-08
            • 2014-09-17
            • 1970-01-01
            • 2021-08-15
            • 2021-09-03
            • 2017-08-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多