Php 如何在动态下拉列表中设置默认值

Php 如何在动态下拉列表中设置默认值,php,dynamic,Php,Dynamic,我有一个从MySQL数据库动态填充的下拉选择,我需要根据用户选择的记录显示默认的下拉值。到目前为止,我没有在下拉列表中显示任何值。但是我有一段代码在select option语句之外,它以粗体显示默认值。我似乎无法通过下拉菜单了解if语句逻辑 用户从数据表中选择一条记录并单击“编辑”。例如,用户选择了以灰色突出显示的行,然后单击“编辑”,将其发送到编辑表单 编辑表单:我将单位id传递给编辑表单,并根据传递的id预填充输入字段,但此处无法填充和设置默认下拉选项值 以下是下拉选择(div id下

我有一个从
MySQL数据库动态填充的
下拉选择
,我需要根据用户选择的记录显示默认的下拉值。到目前为止,我没有在下拉列表中显示任何值。但是我有一段代码在select option语句之外,它以粗体显示默认值。我似乎无法通过下拉菜单了解if语句逻辑

用户从数据表中选择一条记录并单击“编辑”。例如,用户选择了以灰色突出显示的行,然后单击“编辑”,将其发送到编辑表单

编辑表单:我将单位id传递给编辑表单,并根据传递的id预填充输入字段,但此处无法填充和设置默认下拉选项值

以下是下拉选择(div id下拉)编辑表单背后的代码

define('DBHOST','localhost');
定义('DBUSER','root');
定义('DBPASS','********');
定义('DBNAME','fdmamaint');
如果(!$db=newmysqli(DBHOST、DBUSER、DBPASS、DBNAME))死亡(“无法连接到数据库”);
//检索用户选择的记录
$id=htmlspecialchars($_GET[“id”]);
//根据用户选择查询depunits表
$sql=“选择单位id、部门id、标题组织、短描述、长描述、单位描述、可用标识”
. “来自部门单位”
. “其中单位_id=$id”;
if(!$result=$db->query($sql)){
die(“运行查询[“$db->error.”时出错);
}
//遍历结果集并分配变量,以便稍后在脚本中引用
而($row=$result->fetch_assoc()){
$unitId=$row['unit_id'];
$divId=$row['div_id'];
$titleOrg=$row['title_org'];
$shortDesc=$row['short_desc'];
$unitDesc=$row['unit_desc'];
$longDesc=$row['long_desc'];
$enabled=$row['avail_ind'];
}
//Div Id-查询数据库以获取下拉列表选择选项
$divSelect=“从部门中选择部门id、长描述”
. “其中div_id''和avail_ind='Y'以及active_ind='Y'”
. “按部门id排序”;
if(!$divResult=$db->query($divSelect)){
die(“运行查询[“$db->error.”时出错);
}
.......
动态下拉选择:

<!-- Div Id -->                                        
<label for="divId" class="control-label">Div Id</label>
   <select class="form-control" name="divId" id="divId">
       <option value=" "></option>
       <?php
          while ($rowDivs = $divResult->fetch_assoc()) 
         {
            $data = '37' .$rowDivs['div_id'];

            // if the value of $data matches the value of div id of the 
            // user selected row in the database then give that option 
            // value the selected tag                                      
            if ( $data == $divId) 
            {
               echo "<option value=". $data ."selected>";
               echo $data ;
               echo "</option>";
            }
            else 
            {
               echo "<option value=". $data .">";
               echo $data;
               echo "</option>";
            }
          }

部门Id
我想出来了:

我需要使用一个内联if语句,如下所示:

<!-- Div Id -->                                        
<label for="divId" class="control-label">Div Id</label>
   <select class="form-control" name="divId" id="divId">
       <option value=" "></option>
       <?php
          while ($rowDivs = $divResult->fetch_assoc()) {

              $data = '37' .$rowDivs['div_id'];
              echo "<option value=$data" .($data == $divId ? ' selected="selected"' : '') . ">$data</option>";  
          }     
       ?>
   </select>

部门Id

我看你的逻辑没有任何错误。我也不知道;看不到要关闭select标记的位置。可能就这么简单。@Len\u感谢您提供的结束标记语法捕获,但我在现有代码中有,只是忘了在帖子中包含它。
<!-- Div Id -->                                        
<label for="divId" class="control-label">Div Id</label>
   <select class="form-control" name="divId" id="divId">
       <option value=" "></option>
       <?php
          while ($rowDivs = $divResult->fetch_assoc()) {

              $data = '37' .$rowDivs['div_id'];
              echo "<option value=$data" .($data == $divId ? ' selected="selected"' : '') . ">$data</option>";  
          }     
       ?>
   </select>